2016-06-16 221 views
12

我在NodeJs API應用程序中使用jsonwebtoken來驗證我的API應用程序中的用戶。我所建立的流程如下:刷新令牌Jsonwebtoken

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

看看我的帖子在這裏:http://stackoverflow.com/questions/38766688/understanding-json-web-token-jwt-in-context-of-web-authentication 它e使用刷新標記放置一個設置。 –

回答

20

我在一個項目中遇到同樣的問題。

1)我創建了刷新標記並在用戶登錄時(使用jsonwebtoken)返回它。我與用戶保存了刷新令牌。

2)當客戶端發送請求與令牌過期,服務器返回401

3)I實施了新的路徑以刷新令牌。它接收刷新標記和用戶作爲參數,並返回一個新標記(jsonwebtoken)。

4)(可選)可以實現爲無效刷新令牌機制,以防有人偷了

我根據我在這個崗位落實,真正好的片段:

Refresh token in JWT (Node.js implementation)

希望它有幫助

+1

爲我的新項目使用這種技術,謝謝。 –

+0

讓我知道你是否需要一些幫助或任何東西 –