功能使用
目录
说明
这里仅做最简单使用方法的说明,个性化设置请查阅进阶开发。
所有平台的授权登录调用方法都是一样的,唯一不同的是实例化的类!如果有个性化的参数需要传,采用类属性赋值的方式传递,详见文档。
实例化
$qqOAuth = new \Yurun\OAuthLogin\QQ\OAuth2('appid', 'appkey', 'callbackUrl');
把上面3个参数替换成你的即可。
Swoole 模式切换
\Yurun\Util\YurunHttp::setDefaultHandler('Yurun\Util\YurunHttp\Handler\Swoole');
登录
// 获取登录授权跳转页地址
$url = $qqOAuth->getAuthUrl();
// 存储sdk自动生成的state,回调处理时候要验证
$_SESSION['YURUN_QQ_STATE'] = $qqOAuth->state;
// 跳转到登录页
header('location:' . $url);
微信登录有些特殊,请看下面的说明:
微信PC页登录使用:getAuthUrl()
微信应用内登录使用:getWeixinAuthUrl()
两种登录方式参数一致。
回调处理
// 获取accessToken,把之前存储的state传入,会自动判断。获取失败会抛出异常!
$accessToken = $qqOAuth->getAccessToken($_SESSION['YURUN_QQ_STATE']);
// 调用过getAccessToken方法后也可这么获取accessToken
$accessToken = $qqOAuth->accessToken;
// 这是getAccessToken的api请求返回结果,一般不需要用到
$result = $qqOAuth->result;
获取用户资料
// openid,用户在第三方平台的唯一标识
$openid = $qqOAuth->openid;
// 获取用户资料,第一个参数不传则默认使用getAccessToken方法获取到的结果
$userInfo = $qqOAuth->getUserInfo();
到这里常见的登录授权拿资料的流程基本走完,下面的是少数场景需要用到的方法。
刷新AccessToken续期
// $refreshToken需要自行查阅对应平台文档,从哪边获取。
$qqOAuth->refreshToken($refreshToken);
平台 | 支持刷新 |
---|---|
√ | |
微信 | √ |
微博 | × |
Github | × |
验证AccessToken是否有效
验证AccessToken的实现:使用getUserInfo方法来判断,是否可以正常获取到资料。
$areYouOk = $qqOAuth->validateAccessToken($accessToken);
账号密码登录(仅CSDN、Gitee)
// csdn
$accessToken = $csdnOAuth->login('username', 'password');
// gitee
$accessToken = $giteeOAuth->login('username', 'password');
// gitee设置scope
$accessToken = $giteeOAuth->login('username', 'password', 'user_info');