[TOC]
https://segmentfault.com/a/1190000010540911
# 第一步
![](https://box.kancloud.cn/3eba6d8e1044370047f944cdf1f3bb2a_2018x986.jpg)
# 第二步
用户使用qq号登录并授权
当用户通过OAuth提供方的验证后,页面跳转到回调地址,并附加一个参数code,code在下一步中将会用到
php先接收这个code
![](https://box.kancloud.cn/183128c1c1a67d7ba6ed7a04c0d61563_1896x1044.jpg)
# 第三步
code 过期时间10S左右,比较短的时间,为了防止别人即使截取,短时间没有使用,也无效了
appid&appkey&code 发送到OA 说明网站是合法请求授权的
![](https://box.kancloud.cn/f5a23198461d691cbbb34b11c444beb8_1948x1126.jpg)
这是个新的url和上面几步url不一样
# 第四步
AccessToken:用户通过第三方应用访问OAuth接口的令牌
比如在把这个网站写的文章分享到qq空间上
AccessToken与RefreshToken
1、请求。
通过带有AccessToken参数的特定的URL请求OAuth,然后OAuth以xml\json的方式放回结果;
2、处理返回结果。
使用方可以通过对json\xml的解释获取OAuth返回的信息。
![](https://box.kancloud.cn/b3544b8abdeadb62a37d5467f2217b8b_2002x474.jpg)
JSON和XML转换为字符串方式交给后台处理
![](https://box.kancloud.cn/27da1d71cac61322be13133e426a0834_1870x568.jpg)
Access Token-具有较长的生命周期(10天半个月甚至更长,由个个平台来定)
Refresh Token-刷新令牌,起到刷新Access Token的作用(半年或一年甚至更长)
![](https://box.kancloud.cn/6b292897d847f96319bf19702801296a_1970x572.jpg)
- OAuth
- 简介
- 步骤
- 单点登录
- .user.ini
- 时间转换为今天昨天前天几天前
- 获取ip接口
- 协程
- 概念
- yield-from && return-values
- 协程与阻塞的思考
- 中间件
- mysqli异步与php的协程
- 代码片段
- pdo 执行的sql语句
- 二进制安全
- 捕捉异常中断
- global
- 利用cookie模拟登陆
- 解析非正常json
- 简单的对称加密算法
- RSA 加密
- 过滤掉emoji表情
- 判断远程图片是否存在
- 一分钟限制请求100次
- 文件处理
- 多文件上传
- 显示所有文件
- 文件下载和上面显示所有文件配合
- 文件的删除,统计,存数组等
- 图片处理
- 简介
- 验证码
- 图片等比缩放
- 批量添加水印
- beanstalkd
- 安装
- 使用
- RabbitMQ
- 简介
- debain安装
- centos安装
- 常用方法
- 入门
- 工作队列
- 订阅,发布
- 路由
- 主题
- 远程调用RPC
- 消息中间件的选型
- .htaccess
- isset、empty、if区别以及0、‘’、null
- php各版本
- php7.2 不向后兼容的改动
- php中的各种坑
- php7改变
- php慢日志
- 邮件
- PHPMailer实现发邮件
- 验证邮件地址真实性
- 文件下载
- FastCgi 与 PHP-fpm 之间的关系
- openssl 加解密
- 反射
- 钩子方法
- 查找插件
- opcode
- opcache使用
- opcache优化
- 分布式一致性hash算法
- 概念
- 哈希算法好坏的四个定义
- php实现
- java实现
- 数组
- jwt
- jwt简介
- 单点登录
- phpize
- GeoIP扩展
- php无法获得https网页内容的解决方案
- homestead运行的脚本
- Unicode和Utf-8转换
- php优化
- kafka
- fpm配置
- configure配置详解