2017-02-16 114 views
2
var fs = require('fs'); 
var jwt = require('jsonwebtoken'); 

var secret = fs.readFileSync('secret.key', 'utf8'); 

var myToken = jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440}, function(err, token) { 
     console.log(token); 
}); 

這是我的代碼。問題是myToken始終未定義。那麼,這裏的問題在哪裏?爲什麼myToken變量始終未定義?

回答

3

您正在使用asynchronously的方式。所以令牌在回調函數中得到,不會被jwt.sign函數返回。

jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440}, function(err, token) { 
     console.log(token); 
}); 

如果不異步方式使用,那麼它應該是:

var myToken = jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440}); 

之所以選擇任一風格,但不能同時使用。