使用spring social开发第三方登录(一)

1.OAuth协议简介

2.OAuth协议中的授权模式

针对上图中的第2步中用户同意授权可以有以下4种授权模式:
   授权码模式(authorization code)
   简化模式(implicit)
   密码模式(resource owner password credentials)
   客户端模式(client credentials)

3.授权码模式(authorization code)

与其他三种授权模式不同之处:
 1.用户同意授权是在认证服务器上进行的而不是在第三方应用上(可以伪造授权信息)
  2.第三方应用需要有自己的服务器,拿着授权码去换令牌(静态网站用的就是简化模式)

4.什么是第三方登录

1)基本用户信息经过认证后并放入了SecurityContext

 2)spring socia就是将上面的7步封装成SocialAuthenticationFilter加到Spring Security过滤器链中

 3)第三方登录基本原理
  i)服务提供商(ServiceProvider)将上图中的1-5步有一个Template(OAuth2Operations)去封装
  ii)第6步中不同的服务提供商提供的信息字段格式,数量都不一致,需要个性化处理,因此提供了一个APi去获取用户信息
  iv)整个ServiceProvider是被封装在ConnectionFactory中
  v)获取到的用户信息与业务客户信息的关系是存在db中,由UsersConnectionReposity进行crud。


posted @ 2019-11-11 17:28  cherishDouble  阅读(483)  评论(0编辑  收藏  举报