首页 > 解决方案 > 使用 JWT 进行身份验证如何在 Spring Boot 中工作

问题描述

Spring Boot 中的 JWT身份验证如何工作?我是返回我的自定义用户并为 JWT 设置一个名为令牌的字段,还是返回一个包含所有用户信息的 JWT,以便稍后提取?使用JWT进行授权,我需要返回我的自定义用户信息以显示在应用程序中。

标签: spring-bootrestjwt

解决方案


以下是 JWT 旨在工作的几点:

  1. 客户端通过将其凭据发送给身份提供者来登录
  2. 身份提供者验证凭据;如果一切正常,它会检索用户数据,生成包含将用于访问服务的用户详细信息和权限的 JWT,并在 JWT 上设置过期时间(可能无限制)。
  3. 客户端将 JWT 存储有限或无限的时间,具体取决于身份提供者设置的到期时间。
  4. 客户端将存储的 JWT 发送到服务提供商的每个请求的 Authorization 标头中。
  5. 对于每个请求,服务提供者从 Authorization 标头中获取 JWT 并对其进行解密,如果需要,验证签名,如果一切正常,则提取用户数据和权限。仅基于此数据,并且无需在数据库中查找更多详细信息或联系身份提供者,它就可以接受或拒绝客户请求。唯一的要求是身份和服务提供者有一个加密协议,以便服务可以验证签名甚至解密哪个身份被加密

在此处输入图像描述

一个很好的动手示例在这里。


推荐阅读