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