环境: 
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\\QqExtendSocialite@handle\',//这里的SocialiteProviders\\Qq\\QqExtendSocialite@handle,里面有个q改成大写
     \'SocialiteProviders\\QQ\\QqExtendSocialite@handle\',//改成这样就对了,之前如果那个q是小写的话会报找不到类的错误。
 ], ];

5. 在config/service.php添加QQ接口信息

\'qq\' => [
    \'client_id\' => env(\'QQ_KEY\'),
    \'client_secret\' => env(\'QQ_SECRET\'),
    \'redirect\' => env(\'QQ_REDIRECT_URI\'),  
], 

6. 在.env里面QQ接口的信息

QQ_KEY=xxxxxx
QQ_SECRET=xxxxxx
QQ_REDIRECT_URI=xxxxxx

 QQ_KEYQQ_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);
}

 \"\"

收藏 打印