Laravel11使用qq登录,相比之前的laravel版本,配置省略了一些,更加简单,以下是使用方法。
一、安装第三方扩展包:这里指定安装4.1的版本
composer require socialiteproviders/qq: v4.1
二、添加服务提供器Service Provider
打开bootstrap/providers.php,添加SocialiteProviders\Manager\ServiceProvider::class
<?php return [ App\Providers\AppServiceProvider::class, SocialiteProviders\Manager\ServiceProvider::class,//qq互联登录 ];
三、添加事件监听处理器
打开app/Providers/AppServiceProvider.php文件添加事件
Event::listen(function (\SocialiteProviders\Manager\SocialiteWasCalled $event) { $event->extendSocialite('qq', \SocialiteProviders\QQ\Provider::class); });
完整代码
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Event; class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ public function register(): void { // } /** * Bootstrap any application services. */ public function boot(): void { Event::listen(function (\SocialiteProviders\Manager\SocialiteWasCalled $event) { $event->extendSocialite('qq', \SocialiteProviders\QQ\Provider::class); }); } }
四、配置参数
打开配置文件 config/services.php 中,添加如下内容:
'qq' => [ 'client_id' => env('QQ_KEY'), 'client_secret' => env('QQ_SECRET'), 'redirect' => env('QQ_REDIRECT_URI'), ],
五、打开.env文件加上配置内容
QQ_KEY=APP ID QQ_SECRET=APP Key QQ_REDIRECT_URI="网站回调地址"
六、编写代码,创建LoginContoller.php
<?php namespace App\Http\Controllers\Index; use App\Http\Response\ResponseJson; use App\Http\Response\ApiErrDesc; use Illuminate\Http\Request; use Laravel\Socialite\Facades\Socialite; class UserController extends BaseController { use ResponseJson; /* * qq互联 * */ //访问QQ登录页面 public function qqlogin(){ session(['loginprevious' => url()->previous()]); return Socialite::driver('qq')->redirect(); } //qq回调函数 public function qqCallback(Request $request){ $userInfo = Socialite::driver('qq')->stateless()->user(); //打印返回的信息,有基本信息字段和详细信息数组 //dd($userInfo); $user = $userInfo->user; echo '性别:' . $user['gender'] . '<br>'; echo '性别:' . $user['gender_type'] . '<br>'; echo '省份:' . $user['province'] . '<br>'; echo '城市:' . $user['city'] . '<br>'; echo '年:' . $user['year'] . '<br>'; } }
说明:qq互联申请可以参考这篇文章
文章评论(0)