Cara menggunakan middleware dalam Laravel untuk kebenaran log masuk WeChat
Dengan perkembangan pesat Internet mudah alih, log masuk pihak ketiga telah menjadi pengguna kemudahan Cara yang popular untuk mendaftar dan log masuk. Antaranya, log masuk WeChat adalah salah satu yang paling popular. Bagi pembangun, cara menggunakan log masuk WeChat untuk kebenaran dalam tapak web atau aplikasi mereka sendiri adalah keperluan biasa. Artikel ini akan memperkenalkan cara menggunakan perisian tengah dalam rangka kerja Laravel untuk melaksanakan fungsi kebenaran log masuk WeChat dan memberikan contoh kod khusus.
Pertama, kita perlu memuat turun dan memasang rangka kerja Laravel. Buka terminal dan laksanakan arahan berikut:
composer global require "laravel/installer"
Kemudian, masukkan direktori projek anda dalam terminal dan laksanakan arahan berikut untuk mencipta projek Laravel baharu:
laravel new wechat-login
Lengkapkan projek Selepas penciptaan, kita perlu memasang beberapa kebergantungan yang diperlukan. Masukkan direktori projek dalam terminal dan laksanakan arahan berikut:
cd wechat-login composer require overtrue/laravel-wechat
Seterusnya, kita perlu mengkonfigurasi rangka kerja Laravel untuk log masuk menggunakan WeChat. Buka fail .env
di terminal dan isikan kandungan berikut: .env
文件,填写以下内容:
WECHAT_APPID=your_app_id WECHAT_SECRET=your_app_secret WECHAT_REDIRECT_URI=http://your_callback_url
其中,your_app_id
和 your_app_secret
需要替换为你自己的微信开放平台的应用ID和密钥。your_callback_url
是用户授权后的回调URL,需要与你的应用进行对接。
然后,我们需要创建一个中间件来处理微信登录授权逻辑。在终端中执行以下命令:
php artisan make:middleware WeChatAuthMiddleware
运行上述命令后,Laravel将会在 app/Http/Middleware
目录下生成一个 WeChatAuthMiddleware.php
文件。打开该文件,将以下代码添加到 handle
方法中:
<?php namespace AppHttpMiddleware; use Closure; use EasyWeChatFactory; class WeChatAuthMiddleware { public function handle($request, Closure $next) { if ($request->has('code')) { $app = Factory::officialAccount(config('wechat')); $oauth = $app->oauth; $user = $oauth->user(); // 保存用户信息或进行其他处理逻辑 } else { $app = Factory::officialAccount(config('wechat')); $oauth = $app->oauth; return $oauth->redirect(); } return $next($request); } }
上述代码中,我们使用了 EasyWeChat 这个开源库来处理微信登录逻辑。我们在中间件中判断请求中是否包含了 code
参数,如果存在,则说明用户已经授权,我们可以通过该参数来获取用户的信息。如果不存在 code
参数,则说明用户尚未授权,我们需要进行微信登录授权的跳转。
接下来,我们需要将中间件注册到 Laravel 框架中。打开 app/Http/Kernel.php
文件,将以下代码添加到 $routeMiddleware
数组中:
'wechat.auth' => AppHttpMiddlewareWeChatAuthMiddleware::class,
然后,我们需要给某个路由或者路由组应用这个中间件。在 routes/web.php
文件中,将以下代码添加到路由闭包中:
Route::group(['middleware' => ['wechat.auth']], function () { // 添加需要微信登录授权的路由 });
现在,我们已经完成了在 Laravel 中使用中间件实现微信登录授权的配置。当用户访问被定义为需要微信登录授权的路由时,系统会先进行微信登录授权的检查,如果用户尚未授权,则会跳转到微信登录页面进行授权,授权成功后会再次返回到我们定义的回调URL,并包含了 code
rrreee
your_app_id
dan your_app_secret
perlu diganti dengan ID aplikasi dan kunci anda sendiri untuk platform terbuka WeChat. your_callback_url
ialah URL panggil balik selepas kebenaran pengguna, yang perlu disambungkan dengan aplikasi anda. Kemudian, kita perlu mencipta perisian tengah untuk mengendalikan logik kebenaran log masuk WeChat. Jalankan arahan berikut dalam terminal: #🎜🎜#rrreee#🎜🎜#Selepas menjalankan arahan di atas, Laravel akan menjana WeChatAuthMiddleware.php
dalam app/Http/Middleware
direktori > Fail. Buka fail dan tambah kod berikut pada kaedah handle
: #🎜🎜#rrreee#🎜🎜#Dalam kod di atas, kami menggunakan perpustakaan sumber terbuka EasyWeChat untuk mengendalikan logik log masuk WeChat. Kami menentukan dalam middleware sama ada permintaan itu mengandungi parameter code
Jika ia wujud, ini bermakna pengguna telah diberi kuasa dan kami boleh mendapatkan maklumat pengguna melalui parameter ini. Jika parameter code
tidak wujud, ini bermakna pengguna tidak dibenarkan dan kami perlu melompat ke kebenaran log masuk WeChat. #🎜🎜##🎜🎜#Seterusnya, kita perlu mendaftarkan middleware ke dalam rangka kerja Laravel. Buka fail app/Http/Kernel.php
dan tambahkan kod berikut pada tatasusunan $routeMiddleware
: #🎜🎜#rrreee#🎜🎜#Kemudian, kita perlu memberi a Satu laluan atau kumpulan laluan menggunakan perisian tengah ini. Dalam fail routes/web.php
, tambahkan kod berikut pada penutupan laluan: #🎜🎜#rrreee#🎜🎜#Sekarang, kami telah selesai menggunakan perisian tengah untuk melaksanakan log masuk WeChat dalam konfigurasi Dibenarkan Laravel. Apabila akses pengguna ditakrifkan sebagai laluan yang memerlukan kebenaran log masuk WeChat, sistem akan menyemak kebenaran log masuk WeChat terlebih dahulu Jika pengguna belum membenarkannya, ia akan melompat ke halaman log masuk WeChat untuk mendapatkan kebenaran , ia akan kembali ke halaman log masuk WeChat yang kami tetapkan URL panggil balik mengandungi parameter code
, yang melaluinya kami boleh mendapatkan maklumat pengguna. #🎜🎜##🎜🎜#Di atas ialah pengenalan dan contoh kod tentang cara menggunakan perisian tengah untuk kebenaran log masuk WeChat dalam Laravel. Saya harap artikel ini dapat membantu masalah kebenaran log masuk WeChat yang anda hadapi semasa pembangunan. #🎜🎜#Atas ialah kandungan terperinci Cara menggunakan perisian tengah untuk kebenaran log masuk WeChat dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!