刷新令牌Jsonwebtoken

时间:2016-06-16 12:54:00

标签: node.js api authentication json-web-token

我在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小时后到期,我希望客户端(移动应用程序)能够请求新的访问令牌。 提前谢谢。

1 个答案:

答案 0 :(得分:26)

我在项目中遇到同样的问题。

1)我创建了刷新令牌并在用户登录时返回(使用jsonwebtoken)。我和用户一起保存了刷新令牌。

2)当客户端发送带有过期令牌的请求时,服务器返回401。

3)我实现了一个刷新令牌的新路径。它接收刷新令牌,用户作为param,并返回一个新令牌(jsonwebtoken)。

4)(可选)您可以实现一种使刷新令牌无效的机制,以防有人偷走它

我在这篇文章中建立了我的实现,非常好的片段:

Refresh token in JWT (Node.js implementation)

希望有所帮助