美文网首页
OAUTH逻辑

OAUTH逻辑

作者: 游泽渠 | 来源:发表于2017-02-03 23:25 被阅读0次

我目前写的,是我理解的感觉靠谱一点的方法
假设后端的登录接口地址在oauth/


第一次登录步骤流程

1、用户点击登录按钮,前端向oauth/sign-up地址发送get请求,此时后端将会用qq的服务器地址和访问参数构造一个访问,访问qq的服务器,设定回调地址为前端的“等待”页面,并将访问得到的页面直接传给前端(注意这里不是传送json数组)

2、前端向用户展示后端发来的授权页面,不同意授权,则停止,在同意授权时,前端获得来自qq服务器的回调,进入“等待页面”,其中在回调地址中会接上authorization_code,从而获得authorization_code。

3、前端通过回调地址中的参数获得authorization_code后,将其发送给后端的oauth/get-token接口,后端通过authrization_code继续访问qq服务器获得access_token和refresh_token并且储存,再通过access_token获得用户的用户名、头像地址、性别和openId,并将这些作为接口的json返回,最后后端服务器设置cookie(永久)储存用户加密过的openId,user_id和获取access_token的时间(便于刷新access_token),并且让session储存user_id,用于检测用户的登录状态,在这个过程中,前端一直保持等待状态。

4、前端通过上一步返回的头像地址获得用户头像,然后退出等待页面,最后根据user_id对应保存用户的头像,性别和用户名这些信息,如果丢失,应该向接口oauth/user-info接口重新申请信息。

5、如果cookie丢失,则无法判断用户身份,需要重新进行授权。

6、后端同样需要储存user_name,user_image_address,user_sex。


关闭浏览器后重新自动登录

关闭浏览器之后,session会自动失效,当下一次访问到来时,只存在cookie,此时后端会根据cookie存储的user_id,获取对应数据库中的openId,将其加密后与cookie中的对比,如果一致则登录成功,设置session为user_id,失败则不登录并且清空该错误的cookie。在成功自动登录时还会检查当前时间和cookie中的刷新时间,如果差距超过三个月,就会通过access_token重新刷新access_token。

相关文章

  • OAUTH逻辑

    我目前写的,是我理解的感觉靠谱一点的方法假设后端的登录接口地址在oauth/下 第一次登录步骤流程 1、用户点击登...

  • QQ授权登录

    以下都是错的,别看了附上参考地址理解OAuth 2.0OAUTH逻辑 我的设计的意图是,尽可能降低前后端耦合性,所...

  • 微服务安全

    OAuth2 白话OAuth2 什么是OAuth Spring Security OAuth2

  • OAuth2基本概念

    OAuth2 基础概念 标签(空格分隔): OAuth2 什么是OAuth2 ? OAuth2.0是OAuth协议...

  • 05 Spring Social开发第三方登陆(未完)

    OAuth协议OAuth协议解决什么问题OAuth协议的角色OAuth协议的运行流程OAuth授权模式小结 Spr...

  • Spring Security Oauth2.0 实现短信验证码

    spring security oauth2 登录过程详解 ​ ​ 定义手机号登录令牌 手机号登录校验逻辑 登录过...

  • twitter接口文档

    获取oauth_access_token 接口文档 根据用户名称查询用户信息接口 认证请求工具 逻辑代码 根据关键...

  • spring security oauth2

    /oauth/authorize:授权端点。 /oauth/token:令牌端点。 /oauth/confirm_...

  • Spring Security Oauth2

    oauth2理解oauth2理解oauth2参考 oauth2流程 基本概念 Resource Owner: 资源...

  • OAuth 2.0

    理解OAuth 2.0OAuth 2.0 的一个简单解释OAuth 2.0 的四种方式OAuth 2.0 授权认证...

网友评论

      本文标题:OAUTH逻辑

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