如何验证nodejs中的jwt令牌/永不过期?
Posted
技术标签:
【中文标题】如何验证nodejs中的jwt令牌/永不过期?【英文标题】:how to verify jwt token in nodejs / never expire? 【发布时间】:2020-01-15 21:52:31 【问题描述】:我在节点 js 中实现了 JWT
令牌。我能够生成 jwt
令牌。现在我想检查它什么时候会 过期或无效 。
我检查了它在120ms
之后说的文档,它将过期。但我的令牌没有过期。它总是解码令牌,为什么?
我像这样生成令牌 '
app.get("/saveData", async (req, res) =>
try
const token = await userService.create(
userId: "abcp",
password: "hello",
appsAccess: ["yes", "test"]
);
res.send(token);
catch (error)
console.log(error);
);
并像这样验证令牌
app.get("/verify-token", async (req, res) =>
let tokenStatus = await userService.verifyAccessToken(
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7InVzZXJJZCI6ImFiY3AiLCJhcHBzQWNjZXNzIjpbInllcyIsInRlc3QiXSwiX2lkIjoiNWQ3Yzk4MTYzZmQ1NGIwOGUwMjYzNjg0IiwiX192IjowfSwiaWF0IjoxNTY4NDQ2NDg2LCJpc3MiOiJqamoiLCJzdWIiOiJhYmNwIn0.1fqzYJ1p9jSIiNjbA7MwEsU4EsMmmpxF34TU1ZjonSA"
);
res.send(tokenStatus);
);
这是我的代码
https://codesandbox.io/s/lively-tree-hd0fo
verifyAccessToken(token)
return jwt.verify(token, "jhjhhj");
如果我生成令牌,它将在10min
或30min
..etc 之后过期
【问题讨论】:
这里有一个代码框codesandbox.io/s/jsonwebtoken-test-vfe8q,你可以把它拆开,通读一遍你就明白了。 【参考方案1】:您可以使用expiresIn
选项来执行此操作。基于您的代码的示例:
const token = jwt.sign(payload, "jhjhhj",
algorithm: "HS256",
issuer: "jjj",
subject: `$user.userId`,
expiresIn: "10m"
);
【讨论】:
但它总是会返回一个令牌......!我为1min
添加了这个@以上是关于如何验证nodejs中的jwt令牌/永不过期?的主要内容,如果未能解决你的问题,请参考以下文章
其中 jsonwebtoken 存储在服务器 nodejs 中。用户注销后如何使 JWT 过期
如何在 django rest 框架中验证 jwt 身份验证中的令牌