功能使用

优质
小牛编辑
124浏览
2023-12-01

说明

这里仅做最简单使用方法的说明,个性化设置请查阅进阶开发。

所有平台的授权登录调用方法都是一样的,唯一不同的是实例化的类!如果有个性化的参数需要传,采用类属性赋值的方式传递,详见文档。

实例化

$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);
平台支持刷新
QQ
微信
微博×
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');