Rumah >rangka kerja php >Laravel >Cara menggunakan perisian tengah untuk kebenaran log masuk WeChat dalam Laravel

Cara menggunakan perisian tengah untuk kebenaran log masuk WeChat dalam Laravel

PHPz
PHPzasal
2023-11-03 10:55:461512semak imbas

Cara menggunakan perisian tengah untuk kebenaran log masuk WeChat dalam Laravel

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_idyour_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,并包含了 coderrreee

Antaranya, 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn