【发布时间】:2018-11-27 22:09:21
【问题描述】:
用户通过身份验证后发回的授权令牌如何存储在浏览器中,并且可以在同一api中用于其他路由的授权,直到该令牌在用户注销后从用户的数据库中删除?
我也使用邮递员。在 Headers 部分,我将授权令牌作为响应头。但这一切在浏览器的真实登录页面中是如何工作的呢?
【问题讨论】:
标签: node.js authentication login authorization jwt
用户通过身份验证后发回的授权令牌如何存储在浏览器中,并且可以在同一api中用于其他路由的授权,直到该令牌在用户注销后从用户的数据库中删除?
我也使用邮递员。在 Headers 部分,我将授权令牌作为响应头。但这一切在浏览器的真实登录页面中是如何工作的呢?
【问题讨论】:
标签: node.js authentication login authorization jwt
一些介绍,
授权令牌通常是 JWT,并在服务器上使用一些密钥创建,https://www.npmjs.com/package/jsonwebtoken 之类的库主要用于 NodeJs。可以使用 Passport JS 使用不同的策略,使其更安全,并为第三方集成(如 Google、FB 等)开放。
现在你的问题,
当用户最初使用他的有效凭据登录系统时,服务器会生成一个带有 secret key 的 JWT 令牌并将其发送到响应标头中。客户端(浏览器)将此令牌保存在 cookie 或本地存储中,并为下一个请求在请求标头中发送此令牌。服务器拥有密钥,可以验证令牌的有效性,并可以继续或拒绝请求。
出于安全原因,理想情况下应该使用在 1 小时内到期的令牌(取决于用例)左右,并且不要使用未到期或长期到期的令牌。
大致是这样的,如有疑问请告诉我。
【讨论】:
您好,您可以查看这个基于 oauth2-server 的示例 OAuth2,您可以在此处找到 repo:https://github.com/gerardabsi/NodeJS-OAuth2
【讨论】: