环境:
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',
],
];
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','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);
}