首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >验证Jwt的正确方法

验证Jwt的正确方法
EN

Stack Overflow用户
提问于 2021-11-11 08:02:52
回答 3查看 102关注 0票数 0

我在这里写了这段代码

代码语言:javascript
运行
复制
 jwt.verify(token.split(':')[1], 'testTest')

我正在尝试验证这一点,这样它就可以返回true并继续前进。jwt作为有效负载示例的要点

我如何验证这个jwt呢?

代码语言:javascript
运行
复制
`token.split(':')[1] can match testTest`
EN

回答 3

Stack Overflow用户

发布于 2021-11-11 08:21:27

jwt.verify不会这样做。它使用私钥或公钥验证jwt。如果您不想验证它,只想获得有效负载,那么您要做的就是解码jwt,然后检索该值并进行字符串比较。

代码语言:javascript
运行
复制
let decoded = jwt.decode(token);
if(decoded.sub == "testTest")
{
    //Do your stuff...
}

您可以在他们的github page中阅读有关jwt的更多信息。

票数 1
EN

Stack Overflow用户

发布于 2021-11-11 08:13:22

我的方法是保留verify方法,只验证令牌是否未被修改:

代码语言:javascript
运行
复制
jwt.verify(token, JWT_SECRET);

并使用decode方法获取有效负载:

代码语言:javascript
运行
复制
const payload = jwt.decode(token, JWT_SECRET);

在此之后,您可以检查您的有效负载值

票数 0
EN

Stack Overflow用户

发布于 2021-11-11 08:52:40

第一个重要的问题-谁是令牌发行者?

您是否希望验证令牌的有效性和/或仅将令牌的内容与给定值进行比较?

验证(&解码)是用

代码语言:javascript
运行
复制
var decoded = jwt.verify(token, '<public key for verification>');

if(decoded.sub == "<value to match>"){
// TODO: implement match case
}

(假设您使用的是jsonwebtoken包)

您需要提供令牌颁发者提供的公钥进行验证。

如果你想正确地测试它,我建议在jwt.io ->上生成一个令牌,你可以预先生成一个私钥/公钥对,并在解码之前使用它进行编码和验证。

也可以只解码令牌,但如果没有对颁发者给出的公钥进行验证,任何人都可以向您发送令牌,这在您这边将是完全不保存的。

谨致问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69924938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档