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