1.OAuth协议简介
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
的过滤器里面了
代码实现:
1
.ServiceProvider
接口是由服务提供商负责实现的,OAuth2Operations
接口负责流程里面1-5步的操作api接口是用来方便用户自定义信息的接口,
2
.connection
是封装用户信息的实例,它是由ConnectionFactory
创建的,ConnectionFactory
里面要有服务提供的信息,所以要有ServiceProvider
去走完它的流程。apiAdapter
是负责将不同的服务提供商提供的信息整合成标准的connection
。然后就是对应关系,DB UserConnection
负责存储用户的对应关系,然后操作这个UserConnection
是UserConnectionRespository
。
到此只是完成了获取qq等应用的授权令牌,但是并没有将token放到springsecurity里面进行登陆验证,下面开始走完springsecurity完成登陆过程
实现第三方的登录springsocialoauth开发token验证方式,适用pc前后端分离和移动app的用户验证。
image
网友评论