【问题标题】:Authorization and authentication in nodejsnodejs中的授权和认证
【发布时间】:2018-11-27 22:09:21
【问题描述】:

用户通过身份验证后发回的授权令牌如何存储在浏览器中,并且可以在同一api中用于其他路由的授权,直到该令牌在用户注销后从用户的数据库中删除?

我也使用邮递员。在 Headers 部分,我将授权令牌作为响应头。但这一切在浏览器的真实登录页面中是如何工作的呢?

【问题讨论】:

标签: node.js authentication login authorization jwt


【解决方案1】:

一些介绍,

授权令牌通常是 JWT,并在服务器上使用一些密钥创建,https://www.npmjs.com/package/jsonwebtoken 之类的库主要用于 NodeJs。可以使用 Passport JS 使用不同的策略,使其更安全,并为第三方集成(如 Google、FB 等)开放。

现在你的问题,

当用户最初使用他的有效凭据登录系统时,服务器会生成一个带有 secret key 的 JWT 令牌并将其发送到响应标头中。客户端(浏览器)将此令牌保存在 cookie 或本地存储中,并为下一个请求在请求标头中发送此令牌。服务器拥有密钥,可以验证令牌的有效性,并可以继续或拒绝请求。

出于安全原因,理想情况下应该使用在 1 小时内到期的令牌(取决于用例)左右,并且不要使用未到期或长期到期的令牌。

大致是这样的,如有疑问请告诉我。

【讨论】:

    【解决方案2】:

    为了在浏览器中存储令牌,您可以使用 cookie 或浏览器网络存储 (localStorage/sessionStorage)。有关浏览器 Web 存储,请参阅此 link。对于那些需要授权的路由,您应该在标头或 cookie 中发回令牌。此博客post 可能会为您提供更多帮助。

    【讨论】:

      【解决方案3】:

      您好,您可以查看这个基于 oauth2-server 的示例 OAuth2,您可以在此处找到 repo:https://github.com/gerardabsi/NodeJS-OAuth2

      【讨论】:

        猜你喜欢
        • 2015-03-05
        • 2018-07-25
        • 2010-11-14
        • 2021-11-08
        • 2013-08-08
        • 2017-09-11
        • 2023-03-23
        • 1970-01-01
        相关资源
        最近更新 更多