SpringSocial和OAuth协议开发第三方登录

1.OAuth协议简介spring

经过令牌解决密码泄露问题是OAuth的使命后端

OAuth角色流程api

1,服务提供商(Provider),提供令牌的应用。安全

  1认证服务器(Authorization Server) 发出去token服务器

  2资源服务器(Resource Server) 验证token发资源app

2,资源全部者(Resource Owner),就是用户前后端分离

3,第三方应用(Client),想获取用户信息的应用。ide

流程3d

这是经常使用的四种受权模式中的受权码模式,特色是是用户在认证服务器上认证的,保证认证的正确性,若是是第三方应用向认证服务器发送认证请求,多是伪造的,可是用户直接去认证能够避免。还有就是这个认证服务器会先发一个受权码给第三方应用服务器,而后第三方服务器会带着这个受权码去请求令牌,这样就要求第三方应用要有一个服务器,一样也是提升安全性,由于这样就会让第三方将令牌放到服务端,用户客户端不可见,还有一种简化模式是不须要这个受权码的,固然这样相对就会不安全。blog

2.SpringSocial

当springsocial经过令牌拿取用户信息而且构建Authentication放入SecurityContext的时候,就表示用户登录了,而上面这幅图里面的流程是别SpringSecurity封装到一个SocialAuthenticationFilter的过滤器里面了

 

代码实现:

1ServiceProvider接口是由服务提供商负责实现的,OAuth2Operations接口负责流程里面1-5步的操做api接口是用来方便用户自定义信息的接口,

2connection是封装用户信息的实例,它是由ConnectionFactory建立的,ConnectionFactory里面要有服务提供的信息,因此要有ServiceProvider去走完它的流程。apiAdapter是负责将不一样的服务提供商提供的信息整合成标准的connection。而后就是对应关系,DB UserConnection负责存储用户的对应关系,而后操做这个UserConnection是UserConnectionRespository。

到此只是完成了获取qq等应用的受权令牌,可是并无将token放到springsecurity里面进行登录验证,下面开始走完springsecurity完成登录过程

 springsocialoauth开发token验证方式,适用pc先后端分离和移动app的用户验证。

相关文章
相关标签/搜索