亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

Yii2中OAuth擴(kuò)展及QQ互聯(lián)登錄實(shí)現(xiàn)方法
來源:易賢網(wǎng) 閱讀:1883 次 日期:2016-08-22 15:06:35
溫馨提示:易賢網(wǎng)小編為您整理了“Yii2中OAuth擴(kuò)展及QQ互聯(lián)登錄實(shí)現(xiàn)方法”,方便廣大網(wǎng)友查閱!

本文實(shí)例講述了Yii2中OAuth擴(kuò)展及QQ互聯(lián)登錄實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

代碼如下:

php composer.phar require --prefer-dist yiisoft/yii2-authclient "*"

Quick start 快速開始

更改Yii2的配置文件config/main.php,在components中增加如下內(nèi)容

'components' => [

 'authClientCollection' => [

 'class' => 'yii\authclient\Collection',

 'clients' => [

  'google' => [

  'class' => 'yii\authclient\clients\GoogleOpenId'

  ],

  'facebook' => [

  'class' => 'yii\authclient\clients\Facebook',

  'clientId' => 'facebook_client_id',

  'clientSecret' => 'facebook_client_secret',

  ],

 ],

 ]

 ...

]

更改入口文件,一般是app/controllers/SiteController.php,在function actions增加代碼,同時(shí)增加回調(diào)函數(shù)successCallback,大致如下

class SiteController extends Controller

{

 public function actions()

 {

 return [

  'auth' => [

  'class' => 'yii\authclient\AuthAction',

  'successCallback' => [$this, 'successCallback'],

  ],

 ]

 }

 public function successCallback($client)

 {

 $attributes = $client->getUserAttributes();

 // user login or signup comes here

 }

}

在登錄的Views中,增加如下代碼

<?= yii\authclient\widgets\AuthChoice::widget([

 'baseAuthUrl' => ['site/auth']

])?>

以上是官方的說明文檔,下面我們來接入QQ互聯(lián)

增加QQ登錄的組件 我這里是放在 common/components/QqOAuth.php 中,源代碼如下

<?php

namespace common\components;

use yii\authclient\OAuth2;

use yii\base\Exception;

use yii\helpers\Json;

/**

 *

 * ~~~

 * 'components' => [

 * 'authClientCollection' => [

 *  'class' => 'yii\authclient\Collection',

 *  'clients' => [

 *  'qq' => [

 *   'class' => 'common\components\QqOAuth',

 *   'clientId' => 'qq_client_id',

 *   'clientSecret' => 'qq_client_secret',

 *  ],

 *  ],

 * ]

 * ...

 * ]

 * ~~~

 *

 * @see http://connect.qq.com/

 *

 * @author easypao <admin@easypao.com>

 * @since 2.0

 */

class QqOAuth extends OAuth2

{

 public $authUrl = 'https://graph.qq.com/oauth2.0/authorize';

 public $tokenUrl = 'https://graph.qq.com/oauth2.0/token';

 public $apiBaseUrl = 'https://graph.qq.com';

 public function init()

 {

 parent::init();

 if ($this->scope === null) {

  $this->scope = implode(',', [

  'get_user_info',

  ]);

 }

 }

 protected function initUserAttributes()

 {

 $openid = $this->api('oauth2.0/me', 'GET');

 $qquser = $this->api("user/get_user_info", 'GET', ['oauth_consumer_key'=>$openid['client_id'], 'openid'=>$openid['openid']]);

 $qquser['openid']=$openid['openid'];

 return $qquser;

 }

 protected function defaultName()

 {

 return 'qq';

 }

 protected function defaultTitle()

 {

 return 'Qq';

 }

 /**

 * 該擴(kuò)展初始的處理方法似乎QQ互聯(lián)不能用,應(yīng)此改寫了方法

 * @see \yii\authclient\BaseOAuth::processResponse()

 */

 protected function processResponse($rawResponse, $contentType = self::CONTENT_TYPE_AUTO)

 {

   if (empty($rawResponse)) {

     return [];

   }

   switch ($contentType) {

     case self::CONTENT_TYPE_AUTO: {

       $contentType = $this->determineContentTypeByRaw($rawResponse);

       if ($contentType == self::CONTENT_TYPE_AUTO) {

   //以下代碼是特別針對(duì)QQ互聯(lián)登錄的,也是與原方法不一樣的地方 

         if(strpos($rawResponse, "callback") !== false){

           $lpos = strpos($rawResponse, "(");

           $rpos = strrpos($rawResponse, ")");

           $rawResponse = substr($rawResponse, $lpos + 1, $rpos - $lpos -1);

           $response = $this->processResponse($rawResponse, self::CONTENT_TYPE_JSON);

           break;

         }

   //代碼添加結(jié)束

         throw new Exception('Unable to determine response content type automatically.');

       }

       $response = $this->processResponse($rawResponse, $contentType);

       break;

     }

     case self::CONTENT_TYPE_JSON: {

       $response = Json::decode($rawResponse, true);

       if (isset($response['error'])) {

         throw new Exception('Response error: ' . $response['error']);

       }

       break;

     }

     case self::CONTENT_TYPE_URLENCODED: {

       $response = [];

       parse_str($rawResponse, $response);

       break;

     }

     case self::CONTENT_TYPE_XML: {

       $response = $this->convertXmlToArray($rawResponse);

       break;

     }

     default: {

       throw new Exception('Unknown response type "' . $contentType . '".');

     }

   }

   return $response;

 }

}

更改 config/main.php 文件,在components中增加,大致如下

'components' => [

 'authClientCollection' => [

   'class' => 'yii\authclient\Collection',

   'clients' => [

     'qq' => [

      'class'=>'common\components\QqOAuth',

      'clientId'=>'your_qq_clientid',

      'clientSecret'=>'your_qq_secret'

    ],

   ],

 ]

]

SiteController.php 就按官方那樣子

public function successCallback($client)

{

 $attributes = $client->getUserAttributes();

 // 用戶的信息在$attributes中,以下是您根據(jù)您的實(shí)際情況增加的代碼

 // 如果您同時(shí)有QQ互聯(lián)登錄,新浪微博等,可以通過 $client->id 來區(qū)別。

}

最后在登錄的視圖文件中 增加QQ登錄鏈接

<a href="/site/auth?authclient=qq">使用QQ快速登錄</a>

希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Yii2中OAuth擴(kuò)展及QQ互聯(lián)登錄實(shí)現(xiàn)方法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn)

版權(quán)所有:易賢網(wǎng)

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
免费久久99精品国产自在现线| 国产精品日本| 亚洲一区免费| 久久九九电影| 黄色成人在线网站| 亚洲看片网站| 久久综合福利| 一本一本久久| 欧美日韩99| 国产女主播一区二区| 久久五月激情| 亚洲欧洲视频| 欧美成熟视频| 99热免费精品| 国内一区二区三区| 性一交一乱一区二区洋洋av| 欧美日韩一区二区三区四区在线观看 | 一本久久综合| 欧美不卡一区| 国产手机视频一区二区| 欧美日韩免费观看一区| 国产精品一区免费观看| 国产一区二区三区四区三区四| 亚洲国产午夜| 欧美区高清在线| 国产精品久久久久久久免费软件| 国产在线一区二区三区四区| 欧美一区1区三区3区公司 | 国产精品成人一区二区网站软件 | 久久综合婷婷| 国产精品主播| 一本久久综合| 亚洲高清电影| 欧美精品日韩| 午夜欧美视频| 快she精品国产999| 麻豆成人在线| 久久国产精品99国产| 9国产精品视频| 亚洲精品乱码视频| 亚洲欧洲日韩综合二区| 亚洲第一黄网| 亚洲精品韩国| 国产欧美日韩一区| 亚洲一区二区在| 国产精品一区在线观看| 国产精品日韩精品欧美精品| 中文亚洲免费| 国产一区二区高清视频| 亚洲一区二区免费看| 国产伦精品一区| 久久精品日韩欧美| 欧美成人tv| 黄色在线一区| 夜久久久久久| 久久久久久自在自线| 久久一日本道色综合久久| 久久久www| 国产一区二区三区四区三区四 | 久久裸体视频| 国产一区二区三区四区三区四| 国产综合第一页| 激情婷婷欧美| 亚洲专区一区| 欧美日韩综合网| 亚洲精品专区| 久久久久成人精品免费播放动漫| 欧美福利一区| 91久久夜色精品国产九色| 亚洲一区三区电影在线观看| 欧美一区高清| 亚洲精选一区| 久久一区精品| 亚洲精品在线观看免费| 美女国产一区| 亚洲韩日在线| 久久一二三区| 一区二区三区偷拍| 欧美在线视频二区| 亚洲免费不卡| 欧美激情第二页| 一本久道综合久久精品| 欧美日韩喷水| 免费视频一区| 一区二区欧美日韩| 欧美日韩亚洲一区三区| 亚洲一区二区在线看| 韩日精品视频| 久久人人精品| 国产精品亚洲不卡a| 亚洲小说区图片区| 久久影院亚洲| 性欧美暴力猛交另类hd| 亚洲狼人精品一区二区三区| 欧美日韩亚洲三区| 久久精品九九| 国产九九精品| 一本不卡影院| 亚洲国产综合在线看不卡| 欧美黄污视频| 久久精品一二三区| 国产欧美一级| 一区二区精品| 亚洲视频大全| 国产区欧美区日韩区| 亚洲精品一区二区三区av| 亚洲调教视频在线观看| 欧美日本三区| 午夜国产一区| 欧美日韩一区二区视频在线观看 | 日韩亚洲一区在线播放| 国产精品av久久久久久麻豆网| 久久大逼视频| 久久国产精品99国产| 免费久久99精品国产自在现线| 国产一区二区三区久久久久久久久 | 亚洲国产欧洲综合997久久| 欧美人成网站| 国内精品久久国产| 欧美日韩在线精品一区二区三区| 久久天堂成人| 欧美日韩免费精品| 国模大胆一区二区三区| 好看的av在线不卡观看| 伊人精品成人久久综合软件| 在线欧美日韩| 国产日韩欧美一区在线| 亚洲中字在线| 欧美福利视频| 亚洲国产激情| 亚洲一区二区四区| 欧美一区免费视频| 欧美午夜在线| 亚洲国产日韩在线| 国产精品日韩高清| 久久国产精品亚洲77777| 欧美一区三区二区在线观看| 欧美视频四区| 日韩午夜av| 久久精品系列| 亚洲午夜电影| 国产伦理一区| 你懂的成人av| 亚洲精品一级| 久久久青草婷婷精品综合日韩| 欧美国产三区| 国产情侣久久| 欧美日韩在线不卡一区| 99香蕉国产精品偷在线观看 | 亚洲国产欧美日韩| 欧美一级视频| 亚洲国产专区校园欧美| 欧美一区=区| 亚洲一本视频| 久久久久.com| 99国产精品| 国产精品对白刺激久久久| 国产视频一区在线观看一区免费| 午夜精品剧场| 国产精品推荐精品| 亚洲激情另类| 亚洲精品韩国| 欧美高清一区| 亚洲一区二区三区欧美| 99精品99| 在线不卡欧美| 久久久久高清| 亚洲日韩成人| 含羞草久久爱69一区| 亚洲一区影院| 亚洲久色影视| 亚洲午夜一级| 欧美人成网站| 久久婷婷久久| 亚洲免费一区二区| 一本一本a久久| 亚洲视频一二| 国产在线日韩| 欧美日韩喷水| 久久综合中文| 久久久综合网| 久久青草久久| 老司机精品视频网站| 久久高清一区| 免费日韩视频| 久久精品成人| 久久亚洲电影| 欧美在线播放| 欧美日韩国内| 黑丝一区二区| 在线欧美视频| 亚洲精品裸体| 国产一区二区高清视频| 国产精品久久波多野结衣| 中国成人在线视频| 国产精品一区二区三区免费观看| 中日韩男男gay无套| 国产日韩综合| 久久福利一区| 欧美99在线视频观看| 久久婷婷麻豆| 欧美日韩一区二区三区在线观看免| 老牛影视一区二区三区| 欧美精品一区三区在线观看| 欧美日韩日本国产亚洲在线| 激情国产一区| 在线亚洲一区| 久久免费99精品久久久久久| 欧美高清日韩| 亚洲大胆在线| 亚洲一区3d动漫同人无遮挡| 久久资源在线| 亚洲国产精品第一区二区| 国产欧美成人| 欧美不卡福利| 亚洲精品1234| 久久精品五月婷婷| 亚洲午夜精品一区二区| 亚洲精选在线| 久久久精品动漫| 亚洲午夜精品福利| 国产精品一区二区你懂得| 欧美91福利在线观看| 亚洲第一在线综合在线| 乱人伦精品视频在线观看| 好吊视频一区二区三区四区| 国产一区二区三区黄| 欧美三级乱码| 亚洲欧美激情诱惑| 韩国一区二区三区在线观看| 亚洲一区二区三区免费观看| 国内精品嫩模av私拍在线观看| 国产日韩欧美一区二区三区在线观看| 久久一区精品| 中文有码久久| 韩国一区二区三区在线观看| 亚洲欧美久久久久一区二区三区| 国内视频精品| 女同性一区二区三区人了人一| 亚洲国产精品视频一区| 欧美激情日韩| 欧美亚洲一区| 一本色道久久综合亚洲二区三区| 欧美在线网站| 香蕉视频成人在线观看| 亚洲乱亚洲高清| 狠狠综合久久av一区二区老牛| 六月婷婷久久| 亚洲在线电影| 一区二区三区免费看| 国内激情久久| 欧美三级小说| 久久综合导航| 久久最新视频| 午夜亚洲性色视频| 国产精品免费一区二区三区在线观看 | 国产伦精品一区二区三区视频黑人| 欧美日韩国产免费观看| 久久国产精品一区二区三区| 国产一区二区三区高清| 一本色道久久综合亚洲精品婷婷 | 国产精品美女诱惑| 亚洲欧洲一区二区在线观看| 国产综合精品一区| 欧美国产日本| 欧美日本一区| 欧美激情aⅴ一区二区三区| 蜜桃av噜噜一区二区三区| 免费在线欧美黄色| 久久av二区| 久久亚洲欧美| 欧美va天堂在线| 欧美精品观看| 国内精品视频在线播放| 一区二区视频欧美| 亚洲精品1区| 国产一区二区三区久久久久久久久| 国产欧美成人| 免费视频久久| 欧美暴力喷水在线| 国产一区视频在线观看免费| 好看不卡的中文字幕| 亚洲国产精品久久久久婷婷老年| 亚洲国产片色| 国产精品视频免费观看| 美日韩精品免费| 欧美久久影院| 日韩亚洲视频| 免费在线一区二区| 欧美日韩免费观看一区| 亚洲精华国产欧美| 麻豆精品传媒视频| 国模大胆一区二区三区| 一本色道久久综合亚洲精品婷婷 | 好吊色欧美一区二区三区视频| 一区在线免费| 欧美专区一区二区三区| 国产中文一区| 国产伦精品一区二区三区照片91| 老牛嫩草一区二区三区日本 | 久久久久中文| 亚洲国产mv| 久久综合给合久久狠狠色| 亚洲无毛电影| 久久久久久一区| 9国产精品视频| 欧美精品午夜| 亚洲欧美清纯在线制服| 精品不卡视频| 欧美一区视频| 国产精品区一区| 极品少妇一区二区三区| 母乳一区在线观看| 91久久黄色| 欧美性久久久| 久久综合九色综合欧美狠狠| 99精品视频免费| 欧美日韩一区综合| 久久精品人人| 国产精品区一区| 亚洲国产精品毛片| 欧美精品二区三区四区免费看视频| 国产亚洲高清视频| 亚洲成人自拍视频| 欧美日韩亚洲一区二区三区在线观看 | 欧美一区91| 国产精品普通话对白| 亚洲国产精品第一区二区三区 | 国产精品主播| 亚洲免费黄色| 亚洲高清网站| 一区二区亚洲精品| 国产自产精品| 欧美人成网站| 欧美日韩亚洲三区| 欧美久久综合| 欧美91视频| 欧美激情第10页| 老司机午夜精品视频| 久久青青草综合| 免播放器亚洲| 亚洲欧美日韩国产综合精品二区| 99av国产精品欲麻豆| 最新国产拍偷乱拍精品| 影音先锋久久精品| 精品成人久久| 91久久极品少妇xxxxⅹ软件| 亚洲黄页一区| 99精品99| 亚洲一区二区伦理| 久久久久久一区| 午夜视频久久久| 韩国一区二区三区美女美女秀| 国产精品啊v在线| 亚洲图片欧洲图片日韩av| 激情一区二区| 9久re热视频在线精品| 一本一道久久综合狠狠老精东影业| 日韩午夜精品| 免费亚洲一区二区| 欧美日韩免费高清| 国内精品福利| 一级日韩一区在线观看| 免费亚洲一区二区| 欧美日韩亚洲在线| 亚洲国产一区二区精品专区| 一本一本a久久| 久久国产精品亚洲77777| 欧美极品一区| 99riav国产精品| 久久高清一区| 狠狠入ady亚洲精品经典电影| 日韩网站在线| 欧美激情1区2区| 在线亚洲一区| 欧美日韩国产一区精品一区| 亚洲激情在线| 久久字幕精品一区| 日韩视频二区| 欧美激情无毛| 国产农村妇女毛片精品久久莱园子 | 国产亚洲一区在线播放| 欧美伊人影院| 中文一区二区| 国内自拍一区| 欧美中文日韩| 亚洲精品一品区二品区三品区| 久久天天综合| 国产婷婷精品| 亚洲国产成人不卡| 午夜精品久久| 亚洲免费网址| 日韩午夜在线| 亚洲小说欧美另类婷婷| 久久久久久黄| 国产精品一区在线观看| 在线观看亚洲| 欧美精品福利| 久久精品一区二区国产| 一区二区三区国产盗摄|