OAuth协议中的授权模式
- 授权码模式(authorization code)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
- 简化模式(implicit)
授权码模式
1.用户访问第三方应用
2.第三方应用将用户导向认证服务器(Authorization Server)
3.用户同意授权(在认证服务器完成)
4.用户同意授权后,认证服务器将用户导回到第三方应用,并携带授权码。
5.第三方应用后台使用授权码向认证服务器申请令牌。
6.认证服务器验证授权码,验证通过后向第三方应用发送令牌。

SpringSocial
引导用户经过上述授权过程,从服务提供者的资源服务器中获取到用户信息,并构建Authentication放入SpringSecurity的SecurityContext中。
当向SecurityContext中放入认证过的Authentication实例时,对SpringSecurity来说相当于登录成功。
以上为第三方登录的原理。

SpringSocial将上述过程封装到SocialAuthenticationFilter中,并将该过滤器加入到SpringSecurity的过滤器链上。

网友评论