[英]NodeJS JWT Verify Fail even token if it's the same as the sign token
嘗試在NodeJS上開發API時,我得到了我的符號令牌,並通過安全的api路由將其發送回去,但是jwt永遠無效,即使它與我生成的令牌相同! 我的代碼有什么問題?
我是那樣做的
pbkdf2(queryPassword, salt, 10000, length, digest, (err: Error, hash: Buffer) => {
if (hash.toString('hex') === userPassword) {
sign({'user': username, permissions: []}, secret, {expiresIn: '7d'}, (err, token => {
response.json({'token': token});
}));
} else {
response.json({'error': 'User / Password Mismatch'});
}
});
這是驗證:
verify(token, secret, function(tokenError, decoded) {
if (tokenError) { // i'm always getting error...
return response.status(403).json({
message: 'Invalid token, please Log in first'
});
}
next();
});
這是我的Angular2服務,它從我的API請求數據
let headers = new Headers({'Authorization': 'Bearer ' + this.token});
let options = new RequestOptions({headers: headers});
this.http.get(apiUrl, options);
符號生成的令牌:
。
http服務收到的令牌:
Beary eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidHQiLCJwZXJtaXNzaW9ucyI6W10sImlhdCI6MTQ4MzExNTAzNCwiZXHWIjoxNDgzN1E6B1CJ6B1C6B1C1J6B1QJ1B
我終於發現了我的錯誤。
在我的angular2 Api中,我正在使用這條線
let headers = new Headers({'Authorization': 'Bearer ' + this.token});
我只需要發送
let headers = new Headers({'Authorization': this.token});
“軸承”導致了我的錯誤...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.