28.SpringSecurity-重构社交登陆

前言

以前咱们作浏览器社交登陆的时候:后端

  1. 他走的是直接访问咱们第三方应用Client,走的是一个标准的OAuth2流程

image.png
App社交登陆:
1.App架构下已经变了,用户再也不直接访问咱们应用,直接访问的是一个app,用户直接在app上点击时候不是直接访问的咱们应用里面的请求路径而是访问的是服务提供商提供的SDK。这个SDK会引导用户去完成受权流程。
2.不一样的服务商,对应的SDK是不同的。而后选择的受权模式是不同的:一种状况是走的简化模式,另外一种状况是走的标准的受权码模式。
3.简化模式:
App的sdk将用户导向认证服务器时候,认证服务器返回的不是受权码,直接是accessToken和openId。 实际上这个时候app已经知道用户的微信openId了,这个时候App其实能够用openId和accessToken直接去资源服务器获取用户的信息。可是他不能拿着openId和accessToken去访问咱们本身后台提供的服务(咱们在这里是第三方应用Client);由于此openId和accessToken是服务提供商发给用户的,用户若是须要访问咱们的应用服务,那么就须要咱们发送给他的令牌。这种状况下,咱们应用须要提供一个后端服务。用他的openId来换取咱们自个应用的令牌;也就是咱们须要用openId来登陆。用户给一个正确的openId,咱们应用根据这个openId查询出用户信息,生成一个令牌给用户。要实现这种功能,其实和短信登陆作的事情是同样的。只不过业务逻辑里面验证的不是短信验证码,而是一个openId,根据这个openId去查询用户信息。若是存在的话就返回令牌给用户,若是不存在的话就返回错误。浏览器

image.png

内容

相关文章
相关标签/搜索