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。