laravel实现第三方登录(qq登录)

laravel实现第三方登录(qq登录)

 https://www.cnblogs.com/zzdylan/p/5922477.html

首先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”对应的路由:

 

laravel实现第三方登录(qq登录)

 

成功获取用户资料:

laravel实现第三方登录(qq登录)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113058.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows查看CUDA版本「建议收藏」

    Windows查看CUDA版本「建议收藏」方法1:进入以下目录C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA即可安装的CUDA版本方法2:打开cmd,输入nvcc–version

    2022年4月28日
  • 可浮动placeholder,让你的登录不再枯燥

    可浮动placeholder,让你的登录不再枯燥前言在登录twitter的时候发现他的输入框的placeholder是可以浮动的。当输入框获取到焦点的时候,placeholder会跑到上面去。我觉得这样的登录方式的好处是:可以减少一个label,同时往上浮动又可以保证用户在输入的时候知道输入什么内容。pointer-eventspointer-events属性设置HTML元素如何响应鼠标/触摸事件/单击/点击事件以及光标是否可见。虽然pointer-events属性有11个可能的值,但其中8个值都用于SVG。任何HTMl元素的三个

    2022年7月13日
  • ArrayList扩容机制(基于jdk1.8)

    ArrayList扩容机制(基于jdk1.8)一.ArrayList继承了AbstractList,实现了List接口,底层实现基于数组,因此可以认为是一个可变长度的数组。二.在讲扩容机制之前,我们需要了解一下ArrayList中最主要的几个变量://定义一个空数组以供使用privatestaticfinalObject[]EMPTY_ELEMENTDATA={};//也是一个空数组,跟上边的空数组不同之处在于,这个是在默…

    2022年6月14日
  • Spark部分流程说明

    Spark部分流程说明

    2021年8月10日
  • TI DSP 28335 自学之路,到此止步[通俗易懂]

    TI DSP 28335 自学之路,到此止步[通俗易懂]学DSP强烈推荐顾卫钢的书。TI官网的例程相当规范,推荐大家都能去看一看源码。此篇正式宣告我的DSP自学之路到此就告一段落了。以后工作很可能用不到28335,无论如何,学一点是一点,总归是没坏处。毕业前如有精力再买块FPGA开发板学习一下。愿所有人的未来都是光明一片!

    2022年5月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号