1. 程式人生 > >laravel框架實現QQ第三方登陸

laravel框架實現QQ第三方登陸

環境: 
laravel:5.7
php: 7.2.1

1. 利用composer安裝qq登入的依賴(在命令列輸入框)

composer require socialiteproviders/qq

2. 將第三方的登入服務者註冊進容器內(config/app.php)

'providers' => [
    // 移除 'Laravel\Socialite\SocialiteServiceProvider',
    SocialiteProviders\Manager\ServiceProvider::class, // 新增
];

3. 新增門臉類(config/app.php)

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

 4. 新增事件監聽器(App/Providers/EventServiceProvider)

     protected $listen = [

            'SocialiteProviders\Manager\SocialiteWasCalled' => [

            'SocialiteProviders\QQ\[email protected]',

        ],
];



5. 在config/service.php新增QQ介面資訊

'qq' => [
    'client_id' => env('QQ_KEY'),//在QQ互聯中通過稽核的應用檢視  APP ID
    'client_secret' => env('QQ_SECRET'),//在QQ互聯中通過稽核的應用檢視APP Key
    'redirect' => env('QQ_REDIRECT_URI'), //建立應用時設定的回撥地址
], 

6. 在.env裡面QQ介面的資訊

QQ_KEY=xxxxxx   //在QQ互聯中通過稽核的應用檢視  APP ID
QQ_SECRET=xxxxxx   //在QQ互聯中通過稽核的應用檢視  APP Key
QQ_REDIRECT_URI=xxxxxx   //建立應用時設定的回撥地址

 QQ_KEYQQ_SECRET需要在qq互聯上申請,QQ_REDIRECT_URI需要在qq互聯上設定。 
這裡的回撥地址必須要跟qq互聯管理中心(https://connect.qq.com)設定的回撥地址一樣。

路由:

Route::get('/qqlogin','[email protected]');
Route::get('/qq','[email protected]');

 

控制器:

public function qq(){
    return Socialite::with('qq')->redirect();
}
public function qqlogin(){
    $user = Socialite::driver('qq')->user();
    dd($user);
}