那oauth是在那个流程用jwt生成token的呢?在那个流程oauth让请求头携带token的呢?后续请求携带token的时候, Spring Security是在哪个流程去校验token并判断token有哪些权限的呢
在结合 OAuth 2.0 和 JWT 的场景下,在 Spring Security 中的流程大致如下:
-
OAuth 2.0 认证流程:
-
客户端应用通过 OAuth 2.0 协议向授权服务器请求授权,通常包括认证和授权码的流程。
-
授权服务器对客户端应用进行身份验证,并颁发授权码或直接颁发访问令牌(access token)和刷新令牌(refresh token)。
-
如果授权码模式,则客户端应用使用授权码向授权服务器请求访问令牌;如果直接颁发令牌,则直接使用令牌。
-
在授权服务器成功验证客户端身份后,将生成 JWT 并作为访问令牌返回给客户端。授权服务器可能会在 JWT 中包含用户的一些基本信息和权限信息。
-
-
客户端访问资源服务器流程:
-
客户端应用在每次请求受保护的资源时,将 JWT 携带在请求头中,通常是以 Bearer 方式,放在 Authorization 头中。
-
资源服务器收到请求后,首先从请求头中提取 JWT,并验证其有效性,包括签名验证、过期时间验证等。
-
如果 JWT 有效,资源服务器会解析 JWT 并从中提取用户的身份信息和权限信息,例如用户ID
-