我在NodeJs API应用程序中使用jsonwebtoken来验证我的API应用程序中的用户。我设置的流程如下:
1)用户通过注册API注册,并使用以下内容生成访问令牌:
var jwt = require('jsonwebtoken');
var token = jwt.sign(user, _conf.authentication.superSecret, {
expiresIn: 1440 // I intend to keep it short.
});
2)例如,令牌在24小时后到期。此令牌将返回到客户端移动应用程序,以在所有后续API请求中用作标头。
我想知道如何解决jwt的刷新令牌问题。目前我还没有刷新令牌的机制。因此,如果令牌在24小时后到期,我希望客户端(移动应用程序)能够请求新的访问令牌。 提前谢谢。
答案 0 :(得分:26)
我在项目中遇到同样的问题。
1)我创建了刷新令牌并在用户登录时返回(使用jsonwebtoken)。我和用户一起保存了刷新令牌。
2)当客户端发送带有过期令牌的请求时,服务器返回401。
3)我实现了一个刷新令牌的新路径。它接收刷新令牌,用户作为param,并返回一个新令牌(jsonwebtoken)。
4)(可选)您可以实现一种使刷新令牌无效的机制,以防有人偷走它
我在这篇文章中建立了我的实现,非常好的片段:
Refresh token in JWT (Node.js implementation)
希望有所帮助