gpt4 book ai didi

javascript - JsonWebToken 公开可读吗?

转载 作者:行者123 更新时间:2023-12-03 00:39:23 27 4
gpt4 key购买 nike

我是 JWT 世界的新手,我想为我的 React Native 应用程序用户创建一个 authToken。

但是,我不愿意让任何人读取里面的内容(例如 userMail、firstName 或 uniqueDeviceID)。

例如,我创建了一个这样的 JWT:

const authToken = jwt.sign(
{
firstname: "John",
mail: "john.doe@gmail.com"
},
"mySecretSignature",
{ expiresIn: "1h" }
);

所以我获得了一个 token 。好消息 !但是,我在想“好吧,mySecretSignature 必须保密,以解码 JWT 并获取其中的信息。但是,当我将 token 粘贴到 https://jwt.io/ 上时,它会获取有效负载中的所有信息,无论是否带有“”mySecretSignature “”。

我想知道:

  • 是否可以隐藏有效负载,并使其只能由我的服务器读取(带有 secret 签名)?

  • 如果每个人都可以读取您的 JWT,那么“secretSignature”有何意义?

  • 当我在服务器端 verify() 时,如果我不提供“secretSignature”,我将无法读取 JWT(好消息,不是吗?)但在 JWT.io 上它每次都有效...

最佳答案

回答您的疑问

Is it possible to hide the payload, and make it only readable by me server (with the secret signature) ?

这不是 JWT token 的工作原理。 “JWT 提供了独立的方式,以 JSON 对象的形式在各​​方之间安全地传输信息”

您可以根据 key 生成 token 并使用它来传输数据。

您可以读取 token 的详细信息,但可以对 token 进行任何更改你需要 key 。

从而在传输信息时增加安全性。

也许您可以针对您的用例使用任何加密和解密算法

What is the point of a "secretSignature" if everyone can read your JWT ?

Token 中不应添加任何敏感信息。您可以阅读guildelines在这里

When I verify() on server side, I can not read the JWT if I do not provide the "secretSignature" (great news, no ?) BUT on JWT.io it works every time...

这样说,在服务器端您尝试验证 JWT。并验证您是否需要“secretSignature”,否则 JWT 验证将失败。

您可以在服务器端或任何第三方站点中使用任何 Base64 解码器。您将能够看到与 JWT.io 上相同的详细信息

好消息,不是吗? :)

例如:尝试 this site并解码您的 token ,它将起作用。

你应该明白其中的区别。

您始终可以查看 token 详细信息,但如果没有“secretSignature”则无法修改详细信息

关于javascript - JsonWebToken 公开可读吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523559/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com