首先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\QqExtendSocialite@handle',//這里的SocialiteProviders\Qq\QqExtendSocialite@handle,里面有個q改成大寫
'SocialiteProviders\QQ\QqExtendSocialite@handle',//改成這樣就對了,之前如果那個q是小寫的話會報找不到類的錯誤。
], ];
在config/services.php中添加:
'qq' => [ 'client_id' => env('QQ_KEY'), 'client_secret' => env('QQ_SECRET'), 'redirect' => env('QQ_REDIRECT_URI'), ],
在.env中添加:
QQ_KEY=101331049
QQ_SECRET=1fabaf75e41336b41ab1bbd65d3b3e57
QQ_REDIRECT_URI=http://schoolshop.51gogo.club/qqlogin
QQ_KEY和QQ_SECRET需要在qq互聯上申請,QQ_REDIRECT_URI需要在qq互聯上設置。
這里的回調地址必須要跟qq互聯管理中心(https://connect.qq.com)設置的回調地址一樣。
路由:
Route::get('/qqlogin','TestController@qqlogin');
Route::get('/qq','TestController@qq');
控制器:
public function qq(){ return Socialite::with('qq')->redirect(); }
public function qqlogin(){ $user = Socialite::driver('qq')->user(); dd($user); }
訪問方法“qq”對應的路由:
成功獲取用戶資料: