Node.js网站的用户身份验证

时间:2017-09-18 18:19:19

标签: node.js authentication passport.js passport-local

我正在建立一个基于Node.js的网站。

我遵循以确保API安全的方法如下:

  • 用户使用电子邮件和密码注册
  • 成功注册并登录后,客户端会收到随机生成的令牌
  • 将令牌存储在本地存储中将令牌作为标头传递给所有后续请求
  • 对于每个后续请求,服务器检查令牌并验证用户
  • 用户退出后,存储在客户端本地存储中的令牌将被删除
  • 用户再次登录时会获得新令牌

上述方法是否足够好?请提出更好的方法。

我也看到有人使用本地护照进行身份验证。 本地护照如何帮助实现上述身份验证方式?

2 个答案:

答案 0 :(得分:3)

由于许多原因,这不是一个好方法。例如:

  1. 在您的方法中,用户将无法同时从两个浏览器(Mobile + Desktop)登录。

  2. 通过XSS攻击窃取localStorage数据非常容易。如果你只使用服务器Cookie,那就更难了。

答案 1 :(得分:2)

使用Json Web Token(http://mypathtothe4.blogspot.in/2013/03/greedy-algorithm-example.html)会更好,而不是随机令牌。这将为您提供验证令牌有效的简单方法(令牌已签名并具有到期时间)。