laravel实现第三方登陆

首先composer安装依赖: 在cmd里面 【确保自己已经安装能使用composer】

composer require socialiteproviders/qq

注册服务提供者(同时注释掉原有的Socialite提供者): config下的app.php

'providers' => [
    // 移除 'Laravel\Socialite\SocialiteServiceProvider',
    SocialiteProviders\Manager\ServiceProvider::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=qq互联的id
QQ_SECRET=qq互联的key
QQ_REDIRECT_URI=qq互联的回调地址

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互联官网下载一个php的sdk

然后把现在好的sdk解压放进www目录 

接下来就访问这个配置文件 例如:localhost/Connect2.1  接下来就开始点击配置就进行输入你自己注册的 ip key 回调地址

然后访问qq这个方法就会出现这个下面这个页面 

猜你喜欢

转载自blog.csdn.net/qq_42611547/article/details/85047275