Yii2使用QQ、微信、微博、Github第三方登录

kyle 2017-01-16 2056次浏览 0条评论 0 打赏作者 0 0

1、安装 lulubin/yii2-oauth

composer require --prefer-dist lulubin/yii2-oauth dev-master

2、配 置,在components中增加如下内容

'components' => [
    'authClientCollection' => [
        'class' => 'yii\authclient\Collection',
        'clients' => [
            'qq' => [
                'class' => 'lulubin\oauth\Qq',
                'clientId' => '***',
                'clientSecret' => '***',
            ],
            'weibo' => [
                'class' => 'lulubin\oauth\Weibo',
                'clientId' => '***',
                'clientSecret' => '***',
            ],
            'weixin' => [
                'class' => 'lulubin\oauth\Weixin',
                'clientId' => '***',
                'clientSecret' => '***',
            ],
            'github' => [
                'class' => 'yii\authclient\clients\GitHub',
                'clientId' => '***',
                'clientSecret' => '***,
            ],
        ]
    ]
]

3、在登录操作的控制器下

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'auth' => [
                'class' => 'yii\authclient\AuthAction',
                'successCallback' => [$this, 'successCallback'],
            ],
        ];
    }

    public function successCallback($client)
    {
        $id = $client->getId();
        $attributes = $client->getUserAttributes();
        var_dump($id, $attributes);
    }
}

4、在登录界面添 加以下代码

use yii\helpers\Html;
use lulubin\oauth\assets\AuthChoiceAsset;
AuthChoiceAsset::register($this);
<div class="form-group other-way">
    <?=Html::a('',['/site/auth','authclient'=>'qq'],['class'=>'qq'])?>
    <?=Html::a('',['/site/auth','authclient'=>'weibo'],['class'=>'weibo'])?>
    <?=Html::a('',['/site/auth','authclient'=>'weixin'],['class'=>'weixin'])?>
    <?=Html::a('',['/site/auth','authclient'=>'github'],['class'=>'github'])?>
</div>

5、申请上述第三方的 APP ID和 APP KEY

(1)QQ互联:http://connect.qq.com/

(2)微信开放 平台:https://open.weixin.qq.com/

(3)新浪微博开放平台:http://open.weibo.com/

(4)Github Developer applicationshttps://github.com/settings/developers

QQ、微信和微博的申请比较麻烦,时间久网站 需要备案;Github的申请则十分迅速,建议先申请这个测试。

0

0 条评论

    没有找到数据。

发表评论

kyle
土豪

kyle

注册时间:2016-10-28
最后登录:20天前
发布
带到手机上看