基于 QQ 第三方登录
首先,让我们来了解下,什么是第三方登录,其实说白了就是在自己的web程序中应用于第三方的接口来进行登录,譬如:QQ、微信、微博,GitHub等等。
如上图所示:
然后,我们来了解下,怎么去应用第三方的登录,第三方登录,主要分为两种:第一种:纯粹的原生代码来写;第二种:用第三方包装好的代码加以应用,嵌入到自己的程序中就行,在来这里,我们一一来介绍着两种方法。(基于laravel框架)
第一种,用原生的代码进行编写。总共步骤如下:
- 创建应用
- 安装
- 注册服务提供者
- 添加Socialite门面
- 在添加事件监听器
- 在设置里添加服务配置
- 修改.env文件
- 使用
-
创建应用
登录 qq 互联创建网站应用 网址:https://connect.qq.com/index.html,
登录完之后进行注册,填写信息,信息按照提示一步一步来就行,没有难度。傻瓜式操作,直接下一步就行。弄完之后,要等个一两天就会qq互联平台审核通过的,通过之后就能看到以下的界面:
点击应用管理就能看到审核结果。
2.安装
打开编辑器,我在这里演示的是用Phpstorm编辑器, 打开Composer 复制以下代码直接运行就行:composer require socialiteproviders/qq
3.注册服务提供者
在config/app.php
中providers
添加 :'providers' => [ SocialiteProviders\Manager\ServiceProvider::class, ... ];
4.添加Socialite门面
在config/app.php
中aliases
添加 :'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互联平台中应用管理中出现的,可以通过查看能找到自己的相关信息,如图:
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文档,
其实,第三方登录都会有一个文档的手册的,这里就告诉您一个方法,不管您之前有没有接触到这一类,首先找一下应用手册,其他的按照手册上步骤来操作就可以了。有什么不懂的问题可以联系本人,发我邮件,本人都会回复的,谢谢!邮箱:729589198@qq.com
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: