spring-boot - 使用 JWT 进行身份验证如何在 Spring Boot 中工作
问题描述
Spring Boot 中的 JWT身份验证如何工作?我是返回我的自定义用户并为 JWT 设置一个名为令牌的字段,还是返回一个包含所有用户信息的 JWT,以便稍后提取?使用JWT进行授权,我需要返回我的自定义用户信息以显示在应用程序中。
解决方案
以下是 JWT 旨在工作的几点:
- 客户端通过将其凭据发送给身份提供者来登录
- 身份提供者验证凭据;如果一切正常,它会检索用户数据,生成包含将用于访问服务的用户详细信息和权限的 JWT,并在 JWT 上设置过期时间(可能无限制)。
- 客户端将 JWT 存储有限或无限的时间,具体取决于身份提供者设置的到期时间。
- 客户端将存储的 JWT 发送到服务提供商的每个请求的 Authorization 标头中。
- 对于每个请求,服务提供者从 Authorization 标头中获取 JWT 并对其进行解密,如果需要,验证签名,如果一切正常,则提取用户数据和权限。仅基于此数据,并且无需在数据库中查找更多详细信息或联系身份提供者,它就可以接受或拒绝客户请求。唯一的要求是身份和服务提供者有一个加密协议,以便服务可以验证签名甚至解密哪个身份被加密
一个很好的动手示例在这里。
推荐阅读
- javascript - 在 React 中的两个子组件之间传递函数
- angular - Angular 11 的问题(从 8 到 11 的角度升级后)
- c# - 按住键移动而不是发送垃圾邮件
- git - 带有 git add 的单个命令以忽略未跟踪的文件
- android - 对从 JSON 解析获得的对象执行 while 循环收到错误:org.json.JSONException: Index 3 out of range [0..3), android studio
- flutter - 如何在android studio中禁用外部点击时最小化ios模拟器?
- google-api - Google V3 API - 文件上传到共享驱动器
- tensorflow - Tensorflow2 目标检测训练 | 使测试结果相同
- javascript - 如何在 html 中上传文档时添加加载符号
- cyber-ark - 使用可信证书从 CyberArk 检索密码