基于 QQ 第三方登录

首先,让我们来了解下,什么是第三方登录,其实说白了就是在自己的web程序中应用于第三方的接口来进行登录,譬如:QQ、微信、微博,GitHub等等。
file
如上图所示:
然后,我们来了解下,怎么去应用第三方的登录,第三方登录,主要分为两种:第一种:纯粹的原生代码来写;第二种:用第三方包装好的代码加以应用,嵌入到自己的程序中就行,在来这里,我们一一来介绍着两种方法。(基于laravel框架)
第一种,用原生的代码进行编写。总共步骤如下:

  • 创建应用
  • 安装
  • 注册服务提供者
  • 添加Socialite门面
  • 在添加事件监听器
  • 在设置里添加服务配置
  • 修改.env文件
  • 使用
  1. 创建应用
    登录 qq 互联创建网站应用 网址:https://connect.qq.com/index.html
    登录完之后进行注册,填写信息,信息按照提示一步一步来就行,没有难度。傻瓜式操作,直接下一步就行。弄完之后,要等个一两天就会qq互联平台审核通过的,通过之后就能看到以下的界面:
    file
    点击应用管理就能看到审核结果。
    2.安装
    打开编辑器,我在这里演示的是用Phpstorm编辑器, 打开Composer 复制以下代码直接运行就行:

    composer require socialiteproviders/qq

    3.注册服务提供者
    config/app.phpproviders添加 :

    'providers' => [
    SocialiteProviders\Manager\ServiceProvider::class,
    ...
    ];

    4.添加Socialite门面
    config/app.phpaliases添加 :

    'aliases' => [
        'Socialite' => Laravel\Socialite\Facades\Socialite::class,
    ]

    5.在添加事件监听器
    App/Providers/EventServiceProvider中添加事件监听 :

    protected $listen = [
    'SocialiteProviders\Manager\SocialiteWasCalled' => [
        'SocialiteProviders\QQ\QqExtendSocialite@handle'
    ],
    ];

    6.在设置里添加服务配置
    config/services.php中添加:

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

    7.修改.env文件
    .env中添加:

    QQ_KEY=xxxxx
    QQ_SECRET=xxxxxxx
    QQ_REDIRECT_URI=call_back
    注意:这里的QQ_KEY和QQ_SECRET是自己qq互联平台中应用管理中出现的,可以通过查看能找到自己的相关信息,如图:

    file
    file
    8.使用
    在上面所有步骤完成之后,就可以进行再自己的项目中嵌入了。

    //qq登录  注意命名空间  实在前台登录的控制器中qqLogin登录方法中进行执行:
    public function qqLogin(){
       return Socialite::with('qq')->redirect();
    }
    //回调函数中执行 也就是您在哪里调用的回调qq
    public function qqBack (Request $request)
    {
    // 这里设置了判断,判断是否是用qq登录还是邮件登录
       if ($request->state && $request->code){
           $qc=new  \QC();
           $access_token = $qc->qq_callback();
           $openid=$qc->get_openid ();
           $qc=new \QC($access_token,$openid);
           $userInfo=$qc->get_user_info();
           $user=User::where('open_id',$openid)->first();
           //dd ($userInfo);
           if(!$user){
               $user = new User();
               $user->open_id = $openid;
               $user->name = $userInfo['nickname'];
               $user->icon = $userInfo['figureurl_1'];
               $user->save();
           }
           //执行登录
          auth ()->login ($user);
           //跳转
           return redirect('/');
    
       }
    
    }

    对于第三方qq登录,如果还有什么不懂的问题,建议您看一下qq互联中sdk文档,
    file
    其实,第三方登录都会有一个文档的手册的,这里就告诉您一个方法,不管您之前有没有接触到这一类,首先找一下应用手册,其他的按照手册上步骤来操作就可以了。有什么不懂的问题可以联系本人,发我邮件,本人都会回复的,谢谢!邮箱:729589198@qq.com

本作品采用《CC 协议》,转载必须注明作者和本文链接
Mrs.默先森
Moshutong
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

如果是前后端分离,最后一步怎么跳转呢

4年前 评论
fmujie 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!