我在这里写了这段代码
jwt.verify(token.split(':')[1], 'testTest')我正在尝试验证这一点,这样它就可以返回true并继续前进。jwt作为有效负载示例的要点
我如何验证这个jwt呢?
`token.split(':')[1] can match testTest`发布于 2021-11-11 08:21:27
jwt.verify不会这样做。它使用私钥或公钥验证jwt。如果您不想验证它,只想获得有效负载,那么您要做的就是解码jwt,然后检索该值并进行字符串比较。
let decoded = jwt.decode(token);
if(decoded.sub == "testTest")
{
//Do your stuff...
}您可以在他们的github page中阅读有关jwt的更多信息。
发布于 2021-11-11 08:13:22
我的方法是保留verify方法,只验证令牌是否未被修改:
jwt.verify(token, JWT_SECRET);并使用decode方法获取有效负载:
const payload = jwt.decode(token, JWT_SECRET);在此之后,您可以检查您的有效负载值
发布于 2021-11-11 08:52:40
第一个重要的问题-谁是令牌发行者?
您是否希望验证令牌的有效性和/或仅将令牌的内容与给定值进行比较?
验证(&解码)是用
var decoded = jwt.verify(token, '<public key for verification>');
if(decoded.sub == "<value to match>"){
// TODO: implement match case
}(假设您使用的是jsonwebtoken包)
您需要提供令牌颁发者提供的公钥进行验证。
如果你想正确地测试它,我建议在jwt.io ->上生成一个令牌,你可以预先生成一个私钥/公钥对,并在解码之前使用它进行编码和验证。
也可以只解码令牌,但如果没有对颁发者给出的公钥进行验证,任何人都可以向您发送令牌,这在您这边将是完全不保存的。
谨致问候
https://stackoverflow.com/questions/69924938
复制相似问题