第三方登录access token过期问题
前几天参加面试的时候,被面试官问道第三方登录的问题,流程其实很简单,但是当面试官问为什么要保存access token,它过不过期有什么意义。当时答得不是很对,现在总结一下:
第三方登录流程
- 第一步:获取 code:
https://graph.qq.com/oauth2.0/authorize?
response_type=code //固定写法
&client_id=" . $app_id . " //腾讯给的APPID
&redirect_uri=" . urlencode($my_url) . " //回调地址
&state=". $_SESSION['state'];
$Scope="get_user_info" 这个是 //网站申请获取用户的信息
- 第二步:根据 code 获取 access_token
https://graph.qq.com/oauth2.0/token?
grant_type=authorization_code //固定写法
&client_id=[YOUR_APP_ID] //APP_ID
&client_secret=[YOUR_APP_Key] //APP_KEY
&code=[The_AUTHORIZATION_CODE] //Authorization Code 的值
&state=[The_CLIENT_STATE] //防止攻击
&redirect_uri=[YOUR_REDIRECT_URI] //回调
- 第三步:使用Access Token来获取用户的OpenID
https://graph.qq.com/oauth2.0/me?access_token=YOUR_ACCESS_TOKEN
openID用户是在这个网站的标识,用户第一次登录还是再次登录就是用这个标识的。通过openID和appID和access_token使用OpenAPI接口来获取用户的信息。具体API的使用请阅读第三方提供方的文档。
进入正题,要理解access_token的作用,和他为什么有三个月的过去问题,那么我们必须了解两点:
1.网站什么时候获取到access_token?
当用户点击第三方登录图标,并授权允许登录,这个时候网站才能获取到access_token。
2.access_token的作用?
使用Access Token来获取用户的OpenID,然后可以使用OpenID来获取用户的信息。
从上面两步就可以看出,当用户授权登录到网站后,网站就可以获取到这个access_token。这个时候假如,假如access_token没有过期时间,那么以后网站可以使用保存下来的access_token来永久的获取用户的信息,这样当然不可以啦,所以第三方规定了access_token有三个月的时间,如果用户在三个月后都没有登录过这个网站,那么这个网站所保存的access_token也就过期了,再也不能获取用户新的信息了,只有等到下一次用户重新授权登录的时候,网站从新获取access_token才能再次获取用户信息。
第三方登录access token过期问题相关推荐
- 【GitHub】Personal Access Token过期导致本地仓库无法直接push到远程
自从GitHub引入access token后,clone 私人仓库到本地需要使用它否则无法push,但access token过期后,原来token clone到本地的仓库,每次push都需要输新t ...
- 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证
最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...
- 百度AI Access Token过期处理
Access Token作为请求百度AI接口以及太多需要第三方平台开发接口的唯一凭据,都存在有效期的问题.而过期处理是很有必要的. 一.问题现状 Access Token的获取一般都是Https请求, ...
- Token实现登录、token过期解决以及数据解析
什么是token? token我们可以理解为一个令牌,主要的作用是守护我们系统的安全,像我们登录这些都是可以使用token进行用户数据校验的,那么为什么不用传统的session呢?主要 ...
- php 防止access token过期,微信調用接口,防止Access_token過期的方法
大家都知道,微信中調用訂閱用戶接口中需要Access_token,而根據微信官方文檔中說明: access_token是公眾號的全局唯一票據,公眾號調用各接口時都需使用access_token.正常情 ...
- Android Retrofit处理Token过期的问题
Token有两种,access token和refresh token. 以下三条是token的作用和生命周期过程. 用户登录后,去访问其他接口,都需要在http head里带上access toke ...
- token 过期后,如何自动续期?
JWT token的 payload 部分是一个json串,是要传递数据的一组声明,这些声明被JWT标准称为claims. JWT标准里面定义的标准claim包括: iss(Issuser):JWT的 ...
- Access Token 与 Refresh Token【转载哒科普啊】
Access Token 与 Refresh Token access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为, ...
- 获取百度开放平台Access Token,调用百度统计接口
官方文档:http://developer.baidu.com/wiki/index.php?title=docs/oauth 获取 Access Token有几种方式 由于项目需求比较简单,这里选择 ...
最新文章
- 【Ant Design Pro 三】样式动态绑定 react样式绑定
- python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例
- IIS服务器下做301永久重定向设置方法[图解]
- c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理
- python数据预处理代码_Python中数据预处理(代码)
- oracle em配置报错,oracle em 启动报错OC4J Configuration issue
- Cookie与Session的联系与区别
- 【英语学习】【WOTD】darling 释义/词源/示例
- 简述什么是图灵机_什么是图灵机
- ESTORE OPENCART 清爽现代主题模板 ABC-0063
- 大数据入门的知识体系,大数据学习路线
- HandlerSocket的安装实例及性能测试
- Windows 10/11【家庭版】设置本地账户密码永不过期的方法
- 三年半 Java 后端鹅厂面试经历
- 消费金融及物流概念介绍
- 通俗理解LDA主题模型(转)
- FFmpeg 基础库(一)视频格式
- 如何让Citrix客户端不能访问XenApp服务器的磁盘
- 如何判断对方列表里是不是好友_怎么判断QQ是不是被对方删除好友了_怎么知道对方QQ是否把我删了...
- Matlab filter实现滑动平均滤波