laravel實現第三方登錄(qq登錄)


首先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”對應的路由:

 

 

成功獲取用戶資料:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM