SPA和node.js服务器的身份validation
我有一个非常简单的node.js应用程序构build在Express上,它使用会话内存存储来处理身份validation。 基本上用户通过以下方式login:
app.post('/sessions', function(req, res) { // check username/password and if valid set authenticated to true if (authenticated){ req.session.user = req.body.username; } ... });
然后在每次来自浏览器的调用中,需要login中间件function,该function检查会话中的用户属性是否已设置。
我现在正在过渡的应用程序,基本上只是提供一个服务,可能会或可能不会在浏览器中使用,所以,而不是使用cookie /会话,我正在考虑更改系统,以便发布到/ getToken(而不是/会话),这将返回一个临时的随机令牌与用户的帐户相关联,然后可以使用一段时间来访问该服务。 然后使用该服务需要在每个呼叫中包括有效的令牌。 (我认为这会比每次传递用户名/密码都好,这样在获取令牌之后密码就不必存储在客户计算机上的内存中了)。
这样的系统基本上和上述现有系统一样安全吗?还是有更为标准/安全的方法来处理这个问题? 处理这样的事情的标准方法是什么?
在此先感谢您的帮助!
你在找什么叫做HMAC,这里有一篇很棒的文章来获得关于如何实现你的服务的想法。
至于基于会话的安全性是否比公钥/私钥密钥更安全,这个问题被广泛讨论并且取决于实现/应用。 在你的情况下,因为你需要在面向公众的API上进行每个请求authentication,所以HMAC是最好的select。
- 在hapi.jsauthenticationscheme和策略之间有什么区别?
- 如何从basicAuth(Express)注销
- 在路由处理中绕过authentication
- Ember + Sails + Websockets用户authentication
- 如何使用身份validation令牌访问用户数据
- 请求反馈:使用客户端复制(pouchdb)为多个用户/帐户设置Couchdb
- 基于令牌的身份validation和在Nodejs中的Facebook身份validation
- Firebase admin.auth.createUser错误(nodejs + Typescript + firebase-admin)
- 刷新令牌Jsonwebtoken