亚洲精品成人_精品成人一区_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>
    欧美精品自拍| 欧美日韩在线一二三| 国产乱子伦精品| 久久综合给合久久狠狠色| 亚洲在线色站| 一本久道久久综合婷婷鲸鱼| 91手机在线观看| 日本一区二区三区在线视频| 精品成人一区| 国产精品免费观看高清| 日韩一区二区电影在线观看| 一区二区视频欧美| 国产精品对白一区二区三区| 伊人久久大香线蕉成人综合网| 99国产精品久久久久久久 | 伊人婷婷久久| 国产日韩欧美一区| 蜜桃麻豆91| 激情欧美一区二区三区| 国产高清在线一区| 欧美黄色aaaa| 91手机在线播放| 中文字幕一区二区三区四区五区六区 | 欧美日韩系列| 久久综合久久久| 亚洲一区精彩视频| 久久一区二区三区超碰国产精品| 日韩精品久久久| 亚洲欧美清纯在线制服| 日韩欧美视频第二区| 国产日韩一区欧美| 日韩视频精品| 欧美综合国产| 亚洲精品一区二区三| 久久国产日韩| 欧美成人dvd在线视频| 高清视频一区二区三区| 国产在线视频欧美一区二区三区| 狠狠色噜噜狠狠狠狠色吗综合| 国产精品99免费看| 看高清中日韩色视频| 国产视频亚洲| 亚洲欧洲一区二区在线观看| 91原创国产| 999在线观看精品免费不卡网站| 久中文字幕一区| 久热精品视频| 亚洲国产日韩在线| 亚洲v国产v在线观看| 999视频在线观看| 亚洲日本无吗高清不卡| 视频一区不卡| 好看的日韩精品| 亚洲女优在线| 国产精品99免费看| 色视频一区二区三区| 电影午夜精品一区二区三区| 1024日韩| 欧美另类专区| 天堂av一区二区| 精品国产一区二区三区四区精华 | 日韩欧美电影一区二区| 久久久夜精品| 国产亚洲欧洲| 黄色综合网站| 欧美伊人影院| 五月天国产一区| 久久精品人人做人人爽电影| 91嫩草视频在线观看| 国产欧美日韩亚洲一区二区三区| 欧美日韩岛国| 亚洲一区免费看| 日韩免费av电影| 久久综合福利| 狠狠综合久久av| 操一操视频一区| 久久综合图片| 久久综合婷婷| 久久另类ts人妖一区二区| 亚洲精品婷婷| 亚洲欧洲一区二区在线观看 | 国自产拍偷拍福利精品免费一 | 一区二区三区偷拍| 亚洲性图久久| 欧美视频一区| 欧美精品v日韩精品v国产精品| 一道精品一区二区三区 | 国模精品娜娜一二三区| 欧美国产高潮xxxx1819| 在线观看亚洲视频啊啊啊啊| 视频一区视频二区视频三区视频四区国产| 精品视频在线观看| 久久青青草综合| 久久精品日产第一区二区三区乱码| 国产一区二区免费在线观看| 国产一区二区三区黄| 国产麻豆乱码精品一区二区三区 | 亚洲一区二区自拍偷拍| 亚洲一区二区三区精品视频| 亚洲一卡二卡三卡四卡无卡网站在线看| 少妇特黄a一区二区三区| 日韩影视精品| 中文字幕乱码一区二区三区| 欧美人与禽猛交乱配视频| 狠狠爱成人网| av成人天堂| 欧美中日韩免费视频| www.久久草| 欧美凹凸一区二区三区视频| 日韩欧美精品在线不卡 | 国产精品久久久久久免费观看 | 在线国产伦理一区| 欧美日韩精品免费看| 亚洲人成网站在线观看播放| 亚洲少妇自拍| 成人在线视频电影| 久久草视频在线看| 亚洲一区二区在| 伊人色综合久久天天五月婷 | 一区二区国产精品| 久久久蜜桃一区二区人| 久久av一区二区三区亚洲| 日本一区二区在线| 国产精品激情电影| 亚洲免费综合| 美乳视频一区二区| 欧美一区二区视频在线| 99综合精品| 国产免费一区二区| 日韩视频在线播放| 亚洲精品乱码视频| 国产激情一区二区三区在线观看| 日本在线观看不卡| 亚洲黄色成人| 国产精品久久久久久久久婷婷| 日韩精品第一页| 1024成人| 精品一区久久久| 欧美日韩亚洲一区二区三区四区| 亚洲一区3d动漫同人无遮挡| 国产欧美日本在线| 欧美伊人影院| 99在线影院| 中文字幕在线亚洲三区| 国产亚洲欧美一区二区三区| 久久天堂国产精品| 黄色欧美成人| 激情五月综合色婷婷一区二区 | 国产精品av一区二区| 5566中文字幕一区二区| 亚洲.欧美.日本.国产综合在线| 制服诱惑一区二区| 蜜桃91精品入口| 99热免费精品在线观看| 美女黄毛**国产精品啪啪| 亚洲精品少妇| 欧美极品视频一区二区三区| 亚洲国产二区| 久久综合给合久久狠狠色| 亚洲福利国产| 欧美一区二区三区精美影视 | 亚洲二区三区四区| 美媛馆国产精品一区二区| 一区二区激情| 五月天亚洲综合情| 5566中文字幕一区二区| 欧美日韩国产免费观看| 国产一区视频观看| 亚洲婷婷在线| 久久久一本精品99久久精品| 国产欧美日韩一区二区三区| 亚洲国产精品视频一区| 97久久天天综合色天天综合色hd| 欧美区高清在线| 欧美国产综合视频| 久久久精品五月天| 国内视频精品| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 久久亚洲欧美| 亚洲韩日在线| 中文字幕一区二区三区最新| 精品免费日产一区一区三区免费| 一本色道久久综合亚洲精品不| 正在播放一区二区三区| 国产在线一区二区三区四区| 国产日韩免费| 国内精品久久国产| 日本一区二区久久精品| 国产精品毛片一区视频| 亚洲一区二区在线免费观看| 欧美一区激情| 视频一区不卡| 久久久久久99| 久久久福利视频| 在线一区日本视频| 精品91久久久久| 椎名由奈jux491在线播放| 欧美精品成人一区二区在线观看 | 国产日韩三区| 91精品国产综合久久久久久丝袜 |