node.js - Json 网络 token 不会过期

标签 node.js jwt express-jwt

我刚刚实现了一个 json 网络 token 身份验证,在我的后端,我将 jsonwebtoken 创建的 token 发送给客户端,如下所示:

var token = jwt.sign(user, secret.secretToken, { expiresInMinutes: 1 });
return res.json({ token: token });

在客户端,我只是将此 token 存储到 SessionStorage。问题是 token 不会在一分钟后过期,我是不是漏掉了什么?

编辑: 我实现了与 this 中所示的相同内容发布。

最佳答案

当我没有提供对象作为 jwt.sign 的第一个参数时,我发现自己遇到了同样的问题,例如jwt.sign('testuser', secret.secretToken, { expiresIn: '1h' });.

jwt.sign 的这种错误用法确实有效,即使它是错误的,它只是忽略了提供的设置。 https://github.com/auth0/node-jsonwebtoken/issues/64

确保提供一个对象作为第一个参数,例如 jwt.sign({user: 'testuser'}, secret.secretToken, { expiresIn: '1h' });

更新: 已经报告了使用非标准 javascript 对象的问题,例如 mongoose。版本 5.5.2 对此进行了修复。更多详情 here .感谢@gugol 的通知。确保传递具有所需属性的普通对象,而不是直接的数据库对象或类似对象。

关于node.js - Json 网络 token 不会过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626823/

相关文章:

node.js - 如何在 Angular 2 和 Node JS 中更新 ng2-chartjs2 图表中的数据

php - 长插入查询

python - 从 jwt 获取注册算法

wordpress - 更改rest_url_prefix使基本身份验证不起作用

php - Aterisk/Freeswitch 通过 Web 应用程序生成 SIP 用户

javascript - 使用 SQLite3 在 Node js 中为 GET 查询准备语句

oauth-2.0 - Multi-Tenancy 身份验证解决方案的可扩展架构

node.js - Node expressJwt除非指定id路由

node.js - 如何查看 JWT 中存储的数据?使用 auth0 和express-jwt

javascript - express-jwt 无法从路由目录访问 req.user