gpt4 book ai didi

json - 是否可以将用户凭据存储在 JWT 中

转载 作者:行者123 更新时间:2023-12-02 11:47:55 26 4
gpt4 key购买 nike

是否可以将用户凭据(用户名/密码)存储在 JWT 中(以便对其进行签名并稍后验证生成的 token )?

heard那个

No, it is not secure to send a password in a JWT. This is because the JWT claims are simply encoded and can easily be decoded by anyone that sees them. It is not secure to store any sensitive information in a JWT that returned to a user

但我不知道为什么 JWT 网站 recommends然后将其用于身份验证目的:

When should you use JSON Web Tokens?

Here are some scenarios where JSON Web Tokens are useful:

Authentication: This is the most common scenario for using JWT. Once the user is logged in, each subsequent request will include the JWT, allowing the user to access routes, services, and resources that are permitted with that token. Single Sign On is a feature that widely uses JWT nowadays, because of its small overhead and its ability to be easily used across different domains

最佳答案

JWT 是身份验证的结果。例如

  1. 用户将其凭据(例如用户名/密码)发送到身份验证服务。它可以是第三方或您的整体应用程序中的一个,也可以是您自己的专门用于身份验证的微服务。
  2. 该服务验证用户名密码。如果身份验证成功,它会返回一个 JWT,表示用户已经通过身份验证,换句话说,他就是声称的那个人。此 JWT 可能包含没有敏感信息的有效负载(不要在此处存储密码)。
  3. 用户使用 JWT 向服务企业发送另一个请求。如果 JWT 未过期且未损坏(标志仍然有效),则服务可以信任其 JWT。也许这个任务将被委托(delegate)给授权服务。

JWT token 里面有什么?

嗯,最简单的 JWT 包含有关标志的信息(我无法在这里输入太多详细信息,因为我不是安全专家),它允许在收到带有 JWT 的请求时检查标志是否已损坏.

This information can be verified and trusted because it is digitally signed

除此之外,JWT 还允许发送有效负载。

更正式地说,JWT 由以下部分组成:

  • header : token 类型 + 所使用的哈希算法
  • 有效负载:声明是有关实体(通常是用户)和其他元数据的声明。
  • 签名:签名用于验证 JWT 的发送者是否为所声称的发送者,并确保消息在此过程中没有被更改。

例如,如果我使用凭证 username:password 为 gabriel:giussi 向身份验证服务发送请求,它将检查这些凭证,如果它们正常,它可以创建以下 JWT: enter image description here

然后,对于每个请求,我都会包含我的用户名和服务的编码 JWT

  • 如果 JWT 签名有效,则执行授权(Gabriel 被授权做什么?)。
  • 如果 JWT 已过期,请我重新登录
  • 如果标志损坏,则返回身份验证错误。

关于json - 是否可以将用户凭据存储在 JWT 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652695/

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