laravel框架實現第三方QQ登陸
阿新 • • 發佈:2018-12-29
首先composer安裝依賴:
composer require socialiteproviders/qq
註冊服務提供者(同時註釋掉原有的Socialite提供者):
'providers' => [
// 移除 'Laravel\Socialite\SocialiteServiceProvider',
SocialiteProviders\Manager\ServiceProvider::class, // 新增
];
新增Socialite門面(如果已有略過本操作):
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
新增事件監聽器(App/Providers/EventServiceProvider
):
protected $listen = [ 'SocialiteProviders\Manager\SocialiteWasCalled' => [ 'SocialiteProviders\Qq\[email protected]',//這裡的SocialiteProviders\Qq\[email protected],裡面有個q改成大寫 'SocialiteProviders\QQ\[email protected]',//改成這樣就對了,之前如果那個q是小寫的話會報找不到類的錯誤。 ], ];
在config/services.php中新增:
'qq' => [
'client_id' => env('QQ_KEY'),
'client_secret' => env('QQ_SECRET'),
'redirect' => env('QQ_REDIRECT_URI'),
],
在.env中新增:
QQ_KEY=key值
QQ_SECRET=金鑰
QQ_REDIRECT_URI=http://haoyunyun.cn/
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);
}
訪問方法“qq”對應的路由: