美文网首页
8.使用SpringSocial开发第三方登录

8.使用SpringSocial开发第三方登录

作者: 呆叔么么 | 来源:发表于2019-12-29 12:11 被阅读0次

    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负责存储用户的对应关系,然后操作这个UserConnectionUserConnectionRespository

    获取第三方应用的令牌

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

    实现第三方的登录

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

    image

    相关文章

      网友评论

          本文标题:8.使用SpringSocial开发第三方登录

          本文链接:https://www.haomeiwen.com/subject/mwlyoctx.html