关于OAuth和 SpringSocial第三方登陆流程

 

关于OAuth和 SpringSocial第三方登陆流程

  关于第三方登陆基本上都使用了OAuth协议

 

 

 

  SocialAuthentication  身份认证

  Connection Facory  连接工厂

  Provider  供应商

  Repository  存储库

 

1.OAuth协议简介

  

   

  运行原理

  

 

 

 

  简化一下

  

 

  深度一下

  

 

 

  其他基本都是这一套的流程

  

 

 

 

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

    

 

 

 

  

 

 

   

 

 

 

OAuth角色流程

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

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

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

  2,资源所有者(Resource Owner),就是用户

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

 

  

 

 

 

  这是常用的四种授权模式中的授权码模式,特点是是用户在认证服务器上认证的,保证认证的正确性。如果是第三方应用向认证服务器发送认证请求,可能是伪造的,但是用户直接去认证可以避免。还有就是这个认证服务器会先发一个授权码给第三方应用服务器,然后第三方服务器会带着这个授权码去请求令牌,这样就要求第三方应用要有一个服务器,同样也是提高安全性,因为这样就会让第三方将令牌放到服务端,用户客户端不可见,还有一种简化模式是不需要这个授权码的,当然这样相对就会不安全。

 

 

 

2.SpringSocial

  

 

 

 

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

   

 

 

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

 

   

posted @ 2019-11-21 12:17  Cynical丶Gary  阅读(156)  评论(0编辑  收藏  举报