laravel框架實現QQ第三方登陸
阿新 • • 發佈:2019-01-13
環境:
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_KEY
和QQ_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);
}