关于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的用户验证。