微信qq一键登录php代码6,Laravel6实现第三方 微信登录

目前很多的网站中都会存在很多的交互功能,从而降低用户的操作难度,特此带来微信的第三方登录的项目实战功能开发。对于本实例中的开发内容,就不在使用原生的内容,而是直接使用别人写好的封装的类库。

1. 安装 laravel/socialite

composer require laravel/socialite

2). 在你的config/app.php文件中添加以下配置信息

'providers' => [

Laravel\Socialite\SocialiteServiceProvider::class,

],

'aliases' => [

'Socialite' => Laravel\Socialite\Facades\Socialite::class,

],

2. 安装 socialiteProviders/weixin

1). 直接运行以下命令安装扩展包

composer require socialiteproviders/weixin

2). 在你的config/app.php文件中添加以下配置信息

'providers' => [

\SocialiteProviders\Manager\ServiceProvider::class,

],

3). 在你的app/Providers/EventServiceProvider.php文件中添加以下事件处理器

protected $listen = [

\SocialiteProviders\Manager\SocialiteWasCalled::class => [

'SocialiteProviders\Weixin\WeixinExtendSocialite@handle',

],

];

3. 添加配置

1). 在你的.env文件中添加以下配置

WEIXIN_KEY=你的AppID

WEIXIN_SECRET=你的AppSecret

WEIXIN_REDIRECT_URI=你的回调地址

2). 在你的config/services.php文件中添加以下配置

'weixin' => [

'client_id' => env('WEIXIN_KEY'),

'client_secret' => env('WEIXIN_SECRET'),

'redirect' => env('WEIXIN_REDIRECT_URI'),

# 这一行配置非常重要,必须要写成这个地址。

'auth_base_uri' => 'https://open.weixin.qq.com/connect/qrconnect',

],

代码调用

准备工作都完成以后,现在就到了接口对接阶段。

/微信一键登录

Route::get('/weixin', 'WeixinController@weixin')->name('weixin');

Route::get('/weixin/callback', 'WeixinController@weixinlogin');

2). 在你的app/Http/Controllers/WeixinController.php文件里添加以下方法

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Laravel\Socialite\Facades\Socialite;

use App\User;

use Illuminate\Support\Facades\Auth;

use Illuminate\Support\Str;

class WeixinController extends Controller

{

public function weixin(){

return Socialite::with('weixin')->redirect();

}

public function weixinlogin(){

$user = Socialite::driver('weixin')->user();

// dd($user);

$check = User::where('uid', $user->id)->where('provider', 'qq_connect')->first();

if (!$check) {

$customer = User::create([

'uid' => $user->id,

'provider' => 'qq_connect',

'name' => $user->nickname,

'email' => 'qq_connect+' . $user->id . '@example.com',

'password' => bcrypt(Str::random(60)),

'avatar' => $user->avatar

]);

} else {

$customer = $check;

}

Auth::login($customer, true);

return redirect('/');

}

}

最后就是回调后打印oauthUser的结果

3e7db196729ba672c0fb1440e8c8b00a.png

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值