gpt4 book ai didi

jwt - 基于 JWT 的身份验证的 key 是什么以及如何生成它?

转载 作者:行者123 更新时间:2023-12-03 08:40:59 25 4
gpt4 key购买 nike

最近我开始使用基于 JWT 的身份验证。用户登录后,会生成一个用户 token ,如下所示

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ".

它由三个部分组成,每个部分用点(.)分隔。第一部分是 Base64 编码的头。解码后我们会得到类似的东西
{
"alg": "HS256", //Algorithm used
"typ": "JWT"
}

第二部分是声明和 Base64 编码。解码后我们会得到类似的东西
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}

第三部分是签名并生成
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
*secret base64 encoded*
)

现在这个秘钥是什么以及如何生成这个秘钥?

我尝试了一些在线生成器,如“ http://kjur.github.io/jsjws/tool_jwt.html
但可以得到很多帮助。

最佳答案

用于签署 JWT 的算法 (HS256) 意味着该 secret 是发送方和接收方都知道的对称 key 。它是在带外协商和分发的。因此,如果您是 token 的预期接收者,则发送者应该已向您提供带外 secret 。

如果您是发件人,则可以使用任意字节字符串作为 secret ,它可以是生成的或有意选择的。您必须确保在带外将 secret 提供给预期的接收者。

作为记录,JWT 中的 3 个元素不是 base64 编码的,而是 base64url 编码的,这是 base64 编码的一种变体,可产生 URL 安全值。

关于jwt - 基于 JWT 的身份验证的 key 是什么以及如何生成它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309759/

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