我有一个非常简单的node.js应用程序构建在express上,它使用会话内存存储处理身份验证.用户基本上通过以下方式登录:
app.post('/sessions', function(req, res) {
// check username/password and if valid set authenticated to true
if (authenticated){
req.session.user = req.body.username;
} ...
});
然后在来自浏览器的每次调用中,调用一个requiresLogin中间件函数,该函数检查是否已设置会话上的该用户属性.
我现在正在将应用程序转换为基本上只提供可能会或可能不会在浏览器中使用的服务,因此我不打算使用cookie /会话,而是考虑更改系统以便将其发布到/ getToken(而不是/ sessions)将返回与用户帐户关联的临时随机令牌,然后可以在一段时间内使用该帐户来访问该服务.然后,使用该服务将需要在每次调用中包括有效令牌. (我认为这比每次传递用户名/密码更好,以便在调用get令牌后,密码不必存储在客户端计算机的内存中?)
这样的系统基本上和上面的系统一样安全,还是有更多的标准/安全方法来处理这个问题?处理这样的事情的标准方法是什么?
在此先感谢您的帮助!
解决方法:
您正在寻找的是HMAC,有一篇很棒的文章here可以获得有关如何实现服务的想法.
至于基于会话的安全性是否比公共/私人密钥对更安全,受到广泛争论,并且实际上取决于实现/应用.在您的情况下,由于您希望在面向公众的API上进行每次请求身份验证,因此HMAC就是您的选择.
原文地址:https://codeday.me/bug/20190530/1182430.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。