nodejs中的授权和身份验证

时间:2018-06-19 03:00:19

标签: node.js authentication login authorization jwt

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

我使用了邮差。在Headers部分,我获得了授权令牌作为响应头。但是这一切如何在浏览器中的真实登录页面中起作用?

3 个答案:

答案 0 :(得分:0)

一些介绍,

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

现在你的问题,

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

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

这大致是如何运作的,如果有任何疑问,请告诉我。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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