NodeJS 的 JWT 无效签名问题
JWT invalid signature issue with NodeJS
我知道这个问题很常见,我在这里找到了几个帖子并在整个互联网上进行了研究,但仍然没有运气,我花了半天时间。
这是我的 NodeJS 代码:
jwt.sign(jwtData, config.secret, {
expiresIn: 60 * 60 * 24 // expires in 24 hours
}, (err, token) => {
res.access_token = token
console.log("------------", res)
callback(null, res)
})
jwt.verify(res.access_token, config.secret, function(err, decoded) {
if (err) {
console.log("err----", err)
} else {
cb({
message: 'Token Exist'
})
}
});
错误说:JsonWebTokenError:签名无效
此外,我可以在官方网站上验证令牌,它正在那里使用有效签名。
我已经检查过我的secret是不是字符串,是字符串
提前致谢!!!
编辑:
res.access_token--- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MjUsInJvbGVfaWQiOjIsImlzX3BheW1lbnRfZmFpbCI6MCwiaXNfcGFpZCI6MSwiaXNfb3duZXIiOjEsImZpcnN0X25hbWUiOiJTYWdhciIsImxhc3RfbmFtZSI6IlZpcnBhcmEiLCJpYXQiOjE1ODMzMjU4NDYsImV4cCI6MTU4MzQxMjI0Nn0.8LNFXPwSPjjbZE9IWh0p7Xri8t
config.secret----- #&%S0l!dP1vE*@!%
问题是我将令牌存储在 varchar(255)
数据类型中,并且由于数据类型的限制,令牌被自动修整。
所以,我刚刚将数据类型更改为文本,并且运行良好。
感谢@jps
我知道这个问题很常见,我在这里找到了几个帖子并在整个互联网上进行了研究,但仍然没有运气,我花了半天时间。
这是我的 NodeJS 代码:
jwt.sign(jwtData, config.secret, {
expiresIn: 60 * 60 * 24 // expires in 24 hours
}, (err, token) => {
res.access_token = token
console.log("------------", res)
callback(null, res)
})
jwt.verify(res.access_token, config.secret, function(err, decoded) {
if (err) {
console.log("err----", err)
} else {
cb({
message: 'Token Exist'
})
}
});
错误说:JsonWebTokenError:签名无效
此外,我可以在官方网站上验证令牌,它正在那里使用有效签名。
我已经检查过我的secret是不是字符串,是字符串
提前致谢!!!
编辑:
res.access_token--- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MjUsInJvbGVfaWQiOjIsImlzX3BheW1lbnRfZmFpbCI6MCwiaXNfcGFpZCI6MSwiaXNfb3duZXIiOjEsImZpcnN0X25hbWUiOiJTYWdhciIsImxhc3RfbmFtZSI6IlZpcnBhcmEiLCJpYXQiOjE1ODMzMjU4NDYsImV4cCI6MTU4MzQxMjI0Nn0.8LNFXPwSPjjbZE9IWh0p7Xri8t
config.secret----- #&%S0l!dP1vE*@!%
问题是我将令牌存储在 varchar(255)
数据类型中,并且由于数据类型的限制,令牌被自动修整。
所以,我刚刚将数据类型更改为文本,并且运行良好。
感谢@jps