gpt4 book ai didi

jwt - 我们是否需要在客户端/消费者处验证 JSON Web Token?

转载 作者:行者123 更新时间:2023-12-04 18:02:46 26 4
gpt4 key购买 nike

我正在研究一些关于 JSON Web Token 的知识。我知道 header+claims 是由一个 secret key 签名的,编码结果被连接到“header.claims.signature”并最终发送回客户端。

我有一些基本的疑问:

  • 我们是否需要在客户端/消费者处验证 token (一旦它从服务器接收,为了真实性)?它是一个标准还是没有必要?有什么例子可以引用吗?
  • 如果客户端需要验证 token ,我想它必须知道解密/解码的 key 。有没有其他方法可以让客户端自行验证而不共享服务器的 key ?
  • 如果客户端知道 key ,我想它也可以创建自己的 token 。如果是这种情况,服务器是否需要接受此类 token (或者取决于应用程序/业务?)

最佳答案

Do we need to validate the token at client/consumer

在客户端,您通常不验证 token 。把它当作一个不透明的标记。请妥善保管,并在向服务器发出请求时使用它。

If the client needs to validate the token, I guess it has to know the secret key to decrypt/decode.As mentioned above, the client doesn't need to validate the token.

在认证服务器(对用户进行认证并颁发 token 的实例)和资源服务器(拥有 protected 资源并需要 token 进行授权的实例)不相同的任何情况下,签名和验证 token 的生成通常使用 RS256 等非对称算法完成,其中私钥用于对 token 进行签名并且只有身份验证服务器知道,而公钥用于验证签名。

If client knows the secret key, I guess it can create its own token too. If such is the case, do the server need to accept such tokens (or is application/business dependent?)

这就是为什么客户端不应该知道 key 的原因。当使用对称 key 算法(例如 HS256)时,使用相同的 key 来签署和验证签名,您不能让客户端知道 key ,因为它可能被滥用来创建假 token 。那么 JWT 就没有意义了。对于非对称 key ,如果客户端知道公钥,则没有风险。

关于jwt - 我们是否需要在客户端/消费者处验证 JSON Web Token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238986/

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