亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

Oauth

OAuth在"客戶端"與"服務(wù)提供商"之間,設(shè)置了一個(gè)授權(quán)層(authorization layer)。"客戶端"不能直接登錄"服務(wù)提供商",只能登錄授權(quán)層,以此將用戶與客戶端區(qū)分開(kāi)來(lái)。"客戶端"登錄授權(quán)層所用的令牌(token),與用戶的密碼不同。用戶可以在登錄的時(shí)候,指定授權(quán)層令牌的權(quán)限范圍和有效期。

需要用戶自行補(bǔ)充oauth的認(rèn)證流程,方便自己更加快速的接入。

安裝

請(qǐng)?jiān)?code>EasySwoole根目錄下執(zhí)行以下命令

composer require easyswoole/o-auth

詳情

根據(jù)Oauth協(xié)議,分別有如下調(diào)用方法。

  • getAuthUrl() 獲取授權(quán)地址
  • getAccessToken($storeState = null, $state = null, $code = null) 獲取AccessToken(只返回access_token)
  • getAccessTokenResult() 執(zhí)行getAccessToken方法后,此方法獲取原結(jié)果
  • getUserInfo(string $accessToken) 獲取用戶信息
  • validateAccessToken(string $accessToken) 驗(yàn)證token是否有效
  • refreshToken(string $refreshToken = null) 刷新token 返回bool
  • getRefreshTokenResult() 執(zhí)行refreshToken方法后,此方法獲取原結(jié)果

示例代碼

微信

class WeiXin extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\WeiXin\Config();
        $config->setAppId('appid');
        $config->setState('easyswoole');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\WeiXin\OAuth($config);
        $url = $oauth->getAuthUrl();

        return $this->response()->redirect($url);
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();

        $config = new \EasySwoole\OAuth\WeiXin\Config();
        $config->setAppId('appid');
        $config->setSecret('secret');
        $config->setOpenIdMode(\EasySwoole\OAuth\WeiXin\Config::OPEN_ID); // 可設(shè)置UNION_ID 默認(rèn)為OPEN_ID

        $oauth = new \EasySwoole\OAuth\WeiXin\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['code']);
        $refreshToken = $oauth->getAccessTokenResult()['refresh_token'];

        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;

        if (!$oauth->refreshToken($refreshToken)) echo 'access_token 續(xù)期失敗!' . PHP_EOL;

    }
}

QQ

class QQ extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\QQ\Config();
        $config->setAppId('appid');
        $config->setState('easyswoole');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\QQ\OAuth($config);
        $url = $oauth->getAuthUrl();

        return $this->response()->redirect($url);
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();

        $config = new \EasySwoole\OAuth\QQ\Config();
        $config->setAppId('appid');
        $config->setAppKey('appkey');
        $config->setRedirectUri('redirect_uri');
        $config->setOpenIdMode(\EasySwoole\OAuth\QQ\Config::OPEN_ID); // 可設(shè)置UNION_ID 默認(rèn)為OPEN_ID

        $oauth = new \EasySwoole\OAuth\QQ\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['code']);
        $refreshToken = $oauth->getAccessTokenResult()['refresh_token'];

        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;

        if (!$oauth->refreshToken($refreshToken)) echo 'access_token 續(xù)期失敗!' . PHP_EOL;

    }
}

微博

class Weibo extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\Weibo\Config();
        $config->setClientId('clientid');
        $config->setState('easyswoole');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\Weibo\OAuth($config);
        $url = $oauth->getAuthUrl();

        return $this->response()->redirect($url);
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();

        $config = new \EasySwoole\OAuth\Weibo\Config();
        $config->setClientId('clientid');
        $config->setClientSecret('secret');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\Weibo\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['code']);

        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;
    }
}

支付寶

class AliPay extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\AliPay\Config();
        $config->setState('easyswoole');
        $config->setAppId('appid');
        $config->setRedirectUri('redirect_uri');

        // 使用沙箱環(huán)境測(cè)試開(kāi)發(fā)的時(shí)候 把OAuth的源碼文件里面的 API_DOMAIN 和 AUTH_DOMAIN 進(jìn)行修改
        $oauth = new \EasySwoole\OAuth\AliPay\OAuth($config);
        $url = $oauth->getAuthUrl();
        return $this->response()->redirect($url);
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();

        $config = new \EasySwoole\OAuth\AliPay\Config();
        $config->setAppId('appid');
//        $config->setAppPrivateKey('私鑰');
        $config->setAppPrivateKeyFile('私鑰文件'); // 私鑰文件(非遠(yuǎn)程) 此方法與上個(gè)方法二選一

        $oauth = new \EasySwoole\OAuth\AliPay\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['auth_code']);
        $refreshToken = $oauth->getAccessTokenResult()['alipay_system_oauth_token_response']['refresh_token'];

        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;
        var_dump($oauth->getAccessTokenResult());

        if (!$oauth->refreshToken($refreshToken)) echo 'access_token 續(xù)期失敗!' . PHP_EOL;
        var_dump($oauth->getRefreshTokenResult());
    }
}

Github

class Github extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\Github\Config();
        $config->setClientId('clientid');
        $config->setRedirectUri('redirect_uri');
        $config->setState('easyswoole');
        $oauth = new \EasySwoole\OAuth\Github\OAuth($config);
        $this->response()->redirect($oauth->getAuthUrl());
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();
        $config = new \EasySwoole\OAuth\Github\Config();
        $config->setClientId('clientid');
        $config->setClientSecret('secret');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\Github\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['code']);
        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;
    }
}

Gitee

class Gitee extends \EasySwoole\Http\AbstractInterface\Controller
{
    public function index()
    {
        $config = new \EasySwoole\OAuth\Gitee\Config();
        $config->setState('easyswoole');
        $config->setClientId('clientid');
        $config->setRedirectUri('redirect_uri');
        $oauth = new \EasySwoole\OAuth\Gitee\OAuth($config);
        $this->response()->redirect($oauth->getAuthUrl());
    }

    public function callback()
    {
        $params = $this->request()->getQueryParams();

        $config = new \EasySwoole\OAuth\Gitee\Config();
        $config->setClientId('client_id');
        $config->setClientSecret('secret');
        $config->setRedirectUri('redirect_uri');

        $oauth = new \EasySwoole\OAuth\Gitee\OAuth($config);
        $accessToken = $oauth->getAccessToken('easyswoole', $params['state'], $params['code']);
        $userInfo = $oauth->getUserInfo($accessToken);
        var_dump($userInfo);

        if (!$oauth->validateAccessToken($accessToken)) echo 'access_token 驗(yàn)證失敗!' . PHP_EOL;
        var_dump($oauth->getAccessTokenResult());
    }
}
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    国产精品9999久久久久仙踪林| 午夜精品一区二区三区四区| 欧美激情视频一区二区三区在线播放| 久久亚洲欧洲| 国产欧美日韩综合一区在线观看 | 美日韩精品视频| 亚洲精品日韩久久| 欧美日韩在线观看一区二区三区| 蜜桃导航-精品导航| 国产视频精品网| 成人av蜜桃| av资源站久久亚洲| 91九色极品视频| 99精品99久久久久久宅男| 午夜亚洲福利在线老司机| 一本不卡影院| 国产精品毛片va一区二区三区| 亚洲精品社区| 国产日韩一区二区三区在线播放| 亚洲性视频h| 亚洲麻豆视频| 国产伦精品一区二区三区视频孕妇| 精品成人一区| 国产亚洲成人一区| 中日韩在线视频| 国产伦精品一区二区三区| 亚洲一区日韩| 99porn视频在线| 国产欧美一区二区三区另类精品 | 欧美午夜国产| 樱桃成人精品视频在线播放| 亚洲国产国产亚洲一二三| 亚洲色诱最新| 久久综合一区二区三区| 国产在线精品一区二区三区》 | 久久久久看片| 国产一区再线| 在线不卡日本| 亚洲精品在线免费| 欧美亚洲一区| 久久一区二区精品| 中文一区一区三区免费| 91久久黄色| 久久激情婷婷| 欧美下载看逼逼| 国产精品videossex久久发布| 国产欧美日韩一区| 精品一区二区三区国产| 亚洲一区二区三区免费看| 亚洲精品在线二区| 精品国产一区二区三区日日嗨| 午夜精品一区二区在线观看| 亚洲国产一区在线| 国产视色精品亚洲一区二区| 亚洲欧洲一区二区福利| 国产一区二区高清| 久久免费视频1| 黄色日韩精品| 激情视频一区二区| 中文字幕一区二区三区5566| 香蕉精品999视频一区二区| 日韩av大全| 国产欧美韩日| 欧洲国产精品| 美女精品在线| 亚洲精品视频一区二区三区| 美女精品在线观看| 欧美69wwwcom| 国产不卡一区二区三区在线观看| 亚洲精品一区二区三区蜜桃久| 国产模特精品视频久久久久| 日韩美女一区| 久久大逼视频| 一区二区精品在线| 国产精品区免费视频| 亚洲高清视频一区| 视频一区二区在线观看| 2014亚洲精品| 亚洲精品无人区| 亚洲在线播放电影| 国产成人亚洲欧美| 国产精品久久777777毛茸茸| 亚洲电影网站| 狠狠色伊人亚洲综合网站色 | 视频一区在线免费观看| 成人综合色站| 国产亚洲亚洲| 伊人久久久大香线蕉综合直播| 欧美aaaaa喷水| 国产99视频精品免费视频36| 99av国产精品欲麻豆| 一区二区不卡在线| 你懂的视频在线一区二区| 91文字幕巨乱亚洲香蕉| 99亚洲一区二区| 欧美日本不卡| 亚洲一区二区三区免费看| 久久99九九| 国产精品二区在线观看| 久久久久国产精品一区三寸| 精品动漫av| 国产综合色一区二区三区| 一区二区三区四区视频在线观看| 久久99国产精品| 国产一区二区在线网站| 久久久噜噜噜久久狠狠50岁| 韩国亚洲精品| 一区在线电影| 国产精品二区二区三区| 欧美色综合网| 亚洲午夜极品| 国内一区二区三区在线视频| 欧美三级小说| 精品91在线| 亚洲福利av| 亚洲一区二区高清视频| 国产欧美综合一区二区三区| 亚洲乱亚洲高清| 亚洲欧美日韩在线观看a三区| 国产亚洲网站| 97碰碰视频| 鲁丝一区鲁丝二区鲁丝三区| 免费不卡亚洲欧美| 日韩女优中文字幕| 自拍另类欧美| 亚洲高清视频在线观看| 亚洲第一黄网| 久久国产手机看片| 国产在线一区二| 四虎影视永久免费在线观看一区二区三区| 欧美日韩一区二| 亚洲精品成人自拍| 激情久久一区| 性8sex亚洲区入口| 风间由美久久久| 日韩欧美一区二区视频在线播放| 污视频在线免费观看一区二区三区 | 国产精品草草| 国产精品毛片在线看| 懂色中文一区二区三区在线视频| 国产一区免费| 一区二区三区在线观看www| 亚洲黄色一区| 国产一区二区三区四区五区在线| 欧美大香线蕉线伊人久久| 中文字幕在线亚洲精品| 一区二区三区国产在线| 国产精品成人一区二区三区| 日本视频一区在线观看| 很黄很黄激情成人| 99视频国产精品免费观看| 日本一区二区在线| 99热这里只有成人精品国产| 国产精品推荐精品| 欧美阿v一级看视频| 久久精品二区三区| 亚洲成人自拍视频| 亚洲一区二三| 一区二区三区四区免费视频| 国产精品久久久免费| 久久精品第九区免费观看 | 精品在线一区| 亚洲视频狠狠| 欧美不卡福利| 亚洲经典三级| 鲁鲁狠狠狠7777一区二区| 136国产福利精品导航网址| 精品国产一区二区三| 伊人精品成人久久综合软件| 国产精品一区二区三区精品| 国一区二区在线观看| 精品国产中文字幕| 亚洲精品一区二区三区蜜桃久| 美女精品国产| 久久久国产精品一区二区三区| 亚洲精品一区二区毛豆| 91精品网站| 9色精品在线| 午夜欧美一区二区三区免费观看| 香蕉亚洲视频| 亚洲国产网站| 亚洲一区在线直播| 久久久精品国产一区二区三区| 亚洲麻豆视频| 欧美另类综合| 日韩欧美在线观看强乱免费| 成人三级视频在线观看一区二区| 亚洲私人影院| 欧美成人中文| 色综合久久av| 美国av一区二区三区| 99国产超薄丝袜足j在线观看| 黄色成人在线网站| 女主播福利一区| 日韩欧美一区二区在线观看| 亚洲免费久久| 一区二区视频在线观看| 麻豆成人av| 欧美激情视频一区二区三区| 动漫精品视频|