功能使用

目录

说明

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

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

实例化

    1. $qqOAuth = new \Yurun\OAuthLogin\QQ\OAuth2('appid', 'appkey', 'callbackUrl');

把上面3个参数替换成你的即可。

Swoole 模式切换

    1. \Yurun\Util\YurunHttp::setDefaultHandler('Yurun\Util\YurunHttp\Handler\Swoole');

登录

    1. // 获取登录授权跳转页地址
    2. $url = $qqOAuth->getAuthUrl();
    3. // 存储sdk自动生成的state,回调处理时候要验证
    4. $_SESSION['YURUN_QQ_STATE'] = $qqOAuth->state;
    5. // 跳转到登录页
    6. header('location:' . $url);
微信登录有些特殊,请看下面的说明:

微信PC页登录使用:getAuthUrl()

微信应用内登录使用:getWeixinAuthUrl()

两种登录方式参数一致。

回调处理

    1. // 获取accessToken,把之前存储的state传入,会自动判断。获取失败会抛出异常!
    2. $accessToken = $qqOAuth->getAccessToken($_SESSION['YURUN_QQ_STATE']);
    3. // 调用过getAccessToken方法后也可这么获取accessToken
    4. $accessToken = $qqOAuth->accessToken;
    5. // 这是getAccessToken的api请求返回结果,一般不需要用到
    6. $result = $qqOAuth->result;

获取用户资料

    1. // openid,用户在第三方平台的唯一标识
    2. $openid = $qqOAuth->openid;
    3. // 获取用户资料,第一个参数不传则默认使用getAccessToken方法获取到的结果
    4. $userInfo = $qqOAuth->getUserInfo();

到这里常见的登录授权拿资料的流程基本走完,下面的是少数场景需要用到的方法。

刷新AccessToken续期

    1. // $refreshToken需要自行查阅对应平台文档,从哪边获取。
    2. $qqOAuth->refreshToken($refreshToken);
平台支持刷新
QQ
微信
微博×
Github×

验证AccessToken是否有效

验证AccessToken的实现:使用getUserInfo方法来判断,是否可以正常获取到资料。

    1. $areYouOk = $qqOAuth->validateAccessToken($accessToken);

账号密码登录(仅CSDN、Gitee)

    1. // csdn
    2. $accessToken = $csdnOAuth->login('username', 'password');
    3. // gitee
    4. $accessToken = $giteeOAuth->login('username', 'password');
    5. // gitee设置scope
    6. $accessToken = $giteeOAuth->login('username', 'password', 'user_info');