PHP-玩转第三方登录OAuth协议
author:一佰互联 2019-05-25   click:158

OAuth协议——PHP第三方登陆协议

前段时间写了个微信登录和QQ登录,没接触过的肯定是一头雾水,但了解后其实也很简单,下面就是个人总结的OAuth协议的步骤。

1、关于OAuth

全称Open Authorization,开放协议;

是一个PHP实现第三方登录的协议

具体实现就简化为三大步骤;

但我个人是这么记录的:

2、登陆前

需要到签订该协议的网站进行申请/注册(打算实现第三方登录的网站,比如巅云建站qq申请);

得到网站唯一的client_id,以及client_secret;

3、登陆时

用户点击其他登陆”——》(三大步骤之第一步)网站向QQ OAuth服务器发请求,Request Token URL,请求服务地址,如下所示

https://graph.qq.com/oauth/...

client_id=XXXXXXXX&...

redirect_uri=http%3A%2F%2Fdemo.yinxi.net%...

首先有个oauth标识,然后是client_id,然后是redirect_uri重新定向地址,也就是返回地址;

——》(第二步)用户看到第三方登陆界面,进行信息输入;这里会根据用户输入生成code,用户看不到,后台直接生成了;

——》(第三步QQ auth服务器返回状态给网站,安全起见有一个User authorization URL,这里会有codeclient_idclient_secret信息进行验证,同时code也有生命周期(很短,可能就5s);

4、登陆后

除了实现第三方登录,OAuth还允许授权后的网站进行一些功能,比如qq的一键发空间之类的,这时候就有AccessToken(令牌),生命周期一般为7天吧;没有了了的话,可以重新登陆申请,也有RefreshToken,会自动刷新令牌;

5、其他

关于开放,即可以指对内部的开放——比如淘宝一个号,支付宝什么的阿里系列都可以用;

对外部——比如腾讯账号到处插。。

其实就这么简单,只要懂了,认真点处理获取的数据就可以了。