【发布时间】:2015-03-12 05:20:25
【问题描述】:
我正在尝试在我的 expressjs、nodejs 和 angularjs 应用程序中使用 jsonwebtoken 和 express-jwt 为我的用户身份验证实现 json Web 令牌。我阅读了各种文章和教程,现在我对某些事情感到有些困惑。
首先我对 JWT 的理解是它由句号分隔的三部分组成:
- 标头:描述 jwt 和算法。
- 有效负载:包含信息:发行者、受众、到期日
- 签名:基于头部和负载的签名
因此,每个请求都是使用令牌发出的,该令牌在服务器上进行验证。根据this 文章,issuer 是提出请求的人。在用户认证的情况下,用户是颁发者。现在使用express-jwt中间件,验证请求头中的令牌并将解码的令牌附加到req.user:
app.use(expressJwt({ secret: jwtSecret }).unless({ path: [ '/login' ]}));
有效载荷的长度可以是多长?以及如何以及在哪里保存客户端的令牌,以便即使在浏览器关闭后我的会话仍然存在,除非用户注销,如 facebook 的“保持登录”?因为我不希望令牌过期时提示用户再次登录,所以我希望令牌更新,除非用户注销。
【问题讨论】:
标签: node.js express jwt express-jwt