OAuth2.0社交登录流程
2021-10-10 16:56:33 23 举报
OAuth2.0社交登录流程,利用了 redis 和 spring session 实现
作者其他创作
大纲/内容
code: 授权登录后社交平台返回重定向地址携带的参数,以便获取 accsess_token
以微博为例,利用 redis +spring session 完成
auth-server 网站认证服务
用户信息封装后返回
这个uri是由第三方认证服务器所规定的,包括参数,详细见其文档,成功回调页面 redirect_uri 则是由自己定义,在第三方服务器即微博开发者处填写这个 uri
将返回的信息封装为一个 VO 对象
YOUR_CLIENT_SECRET:App Secret
http://xxxx.com//oauth2.0/weibo/success?code = adfa213ad230a
浏览器客户端
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
member-server 网站用户服务
判断当前社交用户是否已经登陆过系统,根据 vo 封装的uid 到数据库进行查询
页面重定向,向需要登录的网站发起社交登录请求
微博、QQ、微信
redirect_uri:授权回调页
将当前的MemberEntiteis保存到分布式 session 中
向社交平台发起远程请求,获取 AccessToken 信息
返回社交平台登录页
PS:
用户输入密码授权登录
携带 返回的 Code 码 再次请求第三方服务器,换取 AccessToken(POST 请求)使用 code 换取 AccessToen 还能换取一次,之后 code 失效
grant_type=authorization_code,表示使用授权码模式 authorization_code是一个固定值
YOUR_CLIENT_ID:App Key
携带刚得到的 vo 对象远程调用 Member 服务进行登录
如果不存在,没有查到当前社交用户对应的记录我们就需要注册一个,可以查出社交用户的社交信息,包括昵称性别等基本信息
登陆成功,重定向到首页
如果已经存在,说明当前社交用户已经登陆过,把 MemberEnties 的 Access_token 替换为当前 vo 的 access_token,并修改过期时间,然后返回 MemberEntities 对象
这个 uri 即开发者在微博开发者处填写的成功后重定向地址redirect_uri,即第一步的redirect_uri
远程查询社交平台提供的用户身份信息接口
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
返回一个对象,将其封装成对应的 Entities对象,插入数据库保存用户
超链接跳转到社交登录的引导登录页
提交登录请求
0 条评论
下一页