OAuth2 PKCE
implicit flow 风险: - redirect URI 篡改 - 避免access token在browser历史中可读 - 避免access token在windows.location中刻度,cross-site scripting - 避免access token泄露到third-party script
app -> authorization server: 登录时,带一个code_challenge = hash(code_verifier)
authorization server -> app: 校验通过,返回authorization code
app -> authorization server: 使用authorization code请求access token,带上code_verifier
authorization server -> app: 使用code_verifier校验code_challenge,校验通过,返回access token
app -> resource server: 使用access token请求data
resource server -> authorization server: 请求JWKS
authorization server -> resource server: JWKS
resource server : 校验JWKS,确认access token可信
resource server -> app : 返回结果