2016-11-09 51 views
0

抱歉,糟糕的英語。 要生成JWT令牌我使用哪些數據放入jwt-tokens(node.js + mongoose)?

jwt  = require('jsonwebtoken'); 
/* some code */ 

//function to create jwt-token 
function createToken(user) { 
    return jwt.sign(user, config.secret, { expiresIn: 60*60*5 }); 
} 

/* some code */ 

//after registration/authorization (if success) createToken token function is calling 
createToken(user); 

我想學習的最佳實踐,必須傳遞給函數什麼數據來創建令牌。 例如,可以這樣像:
login (John) and id(ObjectId("5821d94dbb021a1360582da3") when using MongoDb)?
在這裏,我想,將是相關的問題:
如果我在令牌存儲一些信息,讓用戶初始化,我可以從數據庫中獲取其數據。這是否正確,從JWT的授權標題初始化用戶?初始化我使用express-jwt,如果成功,則設置req.user? 謝謝。

回答

0

如果您使用瀏覽器,您可以將生成的令牌放入瀏覽器本地存儲中。您也可以將會話值存儲在令牌本身中,這些值將在服務器端由nodejs解碼。

+0

謝謝,但我想你誤會了我。 我想知道,我必須在jwt.sign函數中發送什麼數據? –

+0

VAR有效載荷= { \t \t EXP: 「a_unix_timestamp_after_some_days」, \t \t IAT: 「current_unix_timestamp」, \t \t子: 「USER_ID」 \t}; \t return jwt.encode(payload,「token_secret」); –

+0

只需發送user_id,創建令牌的時間以及希望令牌過期的時間。 –