【问题标题】:User authentication for Node.js websiteNode.js 网站的用户身份验证
【发布时间】:2018-02-27 09:00:18
【问题描述】:

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

我为确保 API 的安全性而遵循的方法如下:

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

上面的方法够好吗?如果有的话,请提出更好的方法。

我还看到人们使用本地护照进行身份验证。 passport-local 对上述身份验证方式有何帮助?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      最好使用 Json Web Token (https://jwt.io/introduction/),而不是随机令牌。这将为您提供一种简单的方法来验证令牌是否有效(令牌已签名并具有到期时间)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多