上一篇(Spring Security OAuth 认证流程浅析:密码模式 ),简单分析了 Spring Security OAuth 密码模式授权流程的源码,这篇来试着分析 OAuth 中最具代表性的授权码模式。
由于内容的连贯性,建议读之前,先阅读上一篇分析密码模式的文章(Spring Security OAuth 认证流程浅析:密码模式 )。同时,阅读以下内容需要你了解 OAuth 的原理,可以阅读这篇文章回顾一下。
授权码模式的流程
先简单回顾一下授权码模式的流程。看下图:
- A 步骤:用户访问客户端,客户端会将前者重定向到认证服务器。
- B 步骤:认证服务器返回认证和权限确认的页面,用户选择是否给予客户端授权。
- C 步骤:当用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码(authorization_code)。
- D 步骤:客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
- E 步骤:认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token&#x