laravel实现QQ登录

环境配置:

laravel 5.5

centos7.2

php7.1

参考文章

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

最近刚学习了laravel这个框架,感觉特别好用,于是用laravel写了一个自己的网站,登录用的是laravel自带的用户认证,由于我平时登录别的网站时喜欢使用第三方登录,于是想自己写个第三方登录玩一下,分别申请了QQ和微信的第三方平台,微信太坑了,明明是个人开发者,在申请表上居然还要盖章,我又没有自己的章,上哪盖去。 QQ的应用很容易就通过了,于是就先写个QQ登录试一下。

1.在QQ互联上创建应用,获得APP ID和APP Key并设置好QQ登录的回调地址

登录之后点击应用管理就可以创建应用啦,当然如果你不是开发者还得先申请成为开发者 ,点击右上角的头像就能够申请了

点击创建应用,我创建的是网站应用

之后填写这个表格就可以了,这个地方注意了网站名称跟简介最好跟你这个网站进行备案的时候填的信息一致,否则有可能审核不通过,会说你跟备案信息不一致

审核很快的,审核通过以后就可以看到你的APP ID和APP Key了,并且需要设置你的回调地址,这里注意了,回调地址一旦设定好就不能改了,所有要谨慎设置你的回调地址

2.开始在laravel上引入第三方组件并配置路由和控制器

首先composer安装组件

composer require socialiteproviders/qq

打开config/app.php文件,注册服务提供者,如果用了laravel自带的社会化登陆要先注释掉

'providers' => [
    SocialiteProviders\Manager\ServiceProvider::class, // 添加
];

在该文件下方的aliases中添加这样一行

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

打开app/Providers/EventServiceProvider.php,添加事件监听器

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

在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= http://www.example.com/qq       //你设置的回调地址

为QQ登陆设置对应的路由,切记QQ登陆的路由不要放到带有auth中间件的路由组中,否则无法绕过auth自带的验证进行QQ登陆

Auth::routes();
Route::middleware('auth')->group(function (){
	Route::any('/', 'HomeController@index')->name('home');
});
Route::get('/qq','QQController@qq');    //进行qq登录的路由
Route::get('/qqlogin','QQController@qqlogin');   //授权回调的路由

对应的控制器方法

public function qq(){
	return Socialite::with('qq')->redirect();
}

public function qqlogin(){
	$user = Socialite::driver('qq')->stateless()->user();
	var_dump($user);
	if(!User::where('name',$user->nickname)){
		$cur_user = User::create([
			'name'=>$user->nickname,
			'email'=>'',
			'password'=>'',
			'remember_token'=>Str::random(60)
		]);
	}else{
		$cur_user=User::where('name',$user->nickname)->first();
	}
	Auth::login($cur_user);
	return redirect('/home');
}

ok,这样就可以进行QQ登陆了,当然微信登陆,微博登陆都是一样的,这个包里面也有对应的方法

欢迎关注「不出户」公众号 

在公众号回复「python」,获取全套python学习资源。

在公众号回复「vue」,领取vue核心教程

在公众号回复「react」,领取react全套教程

在公众号回复「angular」,领取angular学习资源

在公众号回复「算法」,领取算法学习教程

在公众号回复「nodejs」,领取nodejs学习教程,更有更多精品资源敬请期待

欢迎关注不出户,让你足不出户爱好学习

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 Laravel实现微信分享功能,你需要完成以下步骤: 1. 注册微信开放平台账号并创建一个应用。 2. 在 Laravel 项目中安装 EasyWeChat 扩展包。可以通过 composer 进行安装:`composer require overtrue/laravel-wechat`。 3. 在 `config/app.php` 文件中的 `providers` 数组中添加服务提供者:`Overtrue\LaravelWeChat\ServiceProvider::class`。 4. 运行以下命令发布配置文件:`php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"`。 5. 在 `.env` 文件中配置微信相关的信息,包括 `WECHAT_APPID`、`WECHAT_SECRET`、`WECHAT_TOKEN` 和 `WECHAT_AES_KEY`。 6. 创建一个路由和控制器来处理微信分享请求,例如在 `routes/web.php` 文件中添加以下代码: ```php Route::get('/wechat/share', 'WeChatController@share'); ``` 7. 创建 `WeChatController` 控制器并在其中实现 `share()` 方法,例如: ```php <?php namespace App\Http\Controllers; use EasyWeChat\Factory; class WeChatController extends Controller { public function share() { $config = [ 'app_id' => config('wechat.appid'), 'secret' => config('wechat.secret'), 'token' => config('wechat.token'), 'aes_key' => config('wechat.aes_key') ]; $app = Factory::officialAccount($config); $jssdk = $app->jssdk; $url = request()->fullUrl(); $shareConfig = $jssdk->setUrl($url)->buildConfig(['onMenuShareTimeline', 'onMenuShareAppMessage'], false); return view('wechat.share', compact('shareConfig')); } } ``` 8. 创建一个视图来显示分享相关的页面,例如 `resources/views/wechat/share.blade.php`: ```html <!DOCTYPE html> <html> <head> <title>WeChat Share</title> <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> </head> <body> <!-- 在此处使用 $shareConfig 配置微信分享 --> </body> </html> ``` 9. 在 `share.blade.php` 视图中使用 `$shareConfig` 配置微信分享,具体使用方法可以参考 EasyWeChat 文档。 现在,当用户访问 `/wechat/share` 路径时,将会显示一个包含微信分享功能的页面。你可以根据需要自定义分享的标题、描述、链接等信息。记得在微信开放平台中配置好相关的网页授权和分享设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木豪末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值