使用spring social开发第三方登录

Posted cherishDouble

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用spring social开发第三方登录相关的知识,希望对你有一定的参考价值。

1.OAuth协议简介

2.OAuth协议中的授权模式

针对上图中的第2步中用户同意授权可以有以下4种授权模式:
   授权码模式(authorization code)
   简化模式(implicit)
   密码模式(resource owner password credentials)
   客户端模式(client credentials)

3.授权码模式(authorization code)

与其他三种授权模式不同之处:
 1.用户同意授权是在认证服务器上进行的而不是在第三方应用上(可以伪造授权信息)
  2.第三方应用需要有自己的服务器,拿着授权码去换令牌(静态网站用的就是简化模式)

4.什么是第三方登录

1)基本用户信息经过认证后并放入了SecurityContext

 2)spring socia就是将上面的7步封装成SocialAuthenticationFilter加到Spring Security过滤器链中

 3)第三方登录基本原理
  i)服务提供商(ServiceProvider)将上图中的1-5步有一个Template(OAuth2Operations)去封装
  ii)第6步中不同的服务提供商提供的信息字段格式,数量都不一致,需要个性化处理,因此提供了一个APi去获取用户信息
  iv)整个ServiceProvider是被封装在ConnectionFactory中
  v)获取到的用户信息与业务客户信息的关系是存在db中,由UsersConnectionReposity进行crud。


以上是关于使用spring social开发第三方登录的主要内容,如果未能解决你的问题,请参考以下文章

使用现有用户访问令牌使用 Spring Social 登录 Facebook

Spring Social - facebook登录时出现404错误

使用Spring Social,Spring安全登录后重定向到原始URL?

微博第三方登录使用social_django实现显示登陆的用户名

DjangoRestFramework整合social-auth-app-django实现第三方登录

如何通过 REST API 为 Spring-social 和 spring-security 设置登录服务?