Maison> cadre php> Laravel> le corps du texte

Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel

PHPz
Libérer: 2023-11-03 10:55:46
original
1429 Les gens l'ont consulté

Comment utiliser le middleware pour lautorisation de connexion WeChat dans Laravel

Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel

Avec le développement rapide de l'Internet mobile, la connexion tierce est devenue un moyen populaire pour les utilisateurs de s'inscrire et de se connecter rapidement. Parmi eux, la connexion WeChat est l'une des plus populaires. Pour les développeurs, comment utiliser la connexion WeChat pour l'autorisation sur leurs propres sites Web ou applications est un besoin courant. Cet article expliquera comment utiliser le middleware dans le framework Laravel pour implémenter la fonction d'autorisation de connexion WeChat et fournira des exemples de code spécifiques.

Tout d'abord, nous devons télécharger et installer le framework Laravel. Ouvrez le terminal et exécutez la commande suivante :

composer global require "laravel/installer"
Copier après la connexion

Ensuite, entrez le répertoire de votre projet dans le terminal et exécutez la commande suivante pour créer un nouveau projet Laravel :

laravel new wechat-login
Copier après la connexion

Après avoir terminé la création du projet, nous devons installer certains éléments nécessaires dépendances. Entrez le répertoire du projet dans le terminal et exécutez la commande suivante :

cd wechat-login composer require overtrue/laravel-wechat
Copier après la connexion

Ensuite, nous devons configurer le framework Laravel pour nous connecter à l'aide de WeChat. Ouvrez le fichier.envdans le terminal et remplissez le contenu suivant :.env文件,填写以下内容:

WECHAT_APPID=your_app_id WECHAT_SECRET=your_app_secret WECHAT_REDIRECT_URI=http://your_callback_url
Copier après la connexion

其中,your_app_idyour_app_secret需要替换为你自己的微信开放平台的应用ID和密钥。your_callback_url是用户授权后的回调URL,需要与你的应用进行对接。

然后,我们需要创建一个中间件来处理微信登录授权逻辑。在终端中执行以下命令:

php artisan make:middleware WeChatAuthMiddleware
Copier après la connexion

运行上述命令后,Laravel将会在app/Http/Middleware目录下生成一个WeChatAuthMiddleware.php文件。打开该文件,将以下代码添加到handle方法中:

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); } }
Copier après la connexion

上述代码中,我们使用了 EasyWeChat 这个开源库来处理微信登录逻辑。我们在中间件中判断请求中是否包含了code参数,如果存在,则说明用户已经授权,我们可以通过该参数来获取用户的信息。如果不存在code参数,则说明用户尚未授权,我们需要进行微信登录授权的跳转。

接下来,我们需要将中间件注册到 Laravel 框架中。打开app/Http/Kernel.php文件,将以下代码添加到$routeMiddleware数组中:

'wechat.auth' => AppHttpMiddlewareWeChatAuthMiddleware::class,
Copier après la connexion

然后,我们需要给某个路由或者路由组应用这个中间件。在routes/web.php文件中,将以下代码添加到路由闭包中:

Route::group(['middleware' => ['wechat.auth']], function () { // 添加需要微信登录授权的路由 });
Copier après la connexion

现在,我们已经完成了在 Laravel 中使用中间件实现微信登录授权的配置。当用户访问被定义为需要微信登录授权的路由时,系统会先进行微信登录授权的检查,如果用户尚未授权,则会跳转到微信登录页面进行授权,授权成功后会再次返回到我们定义的回调URL,并包含了coderrreee

Parmi eux, your_app_idet your_app_secretdoivent être remplacés par votre propre plateforme ouverte WeChat L'ID et la clé de l'application. your_callback_urlest l'URL de rappel après autorisation de l'utilisateur, qui doit être connectée à votre application.

Ensuite, nous devons créer un middleware pour gérer la logique d'autorisation de connexion WeChat. Exécutez la commande suivante dans le terminal : rrreeeAprès avoir exécuté la commande ci-dessus, Laravel générera un fichier WeChatAuthMiddleware.phpdans le répertoire app/Http/Middleware. Ouvrez le fichier et ajoutez le code suivant à la méthode handle: rrreeeDans le code ci-dessus, nous utilisons la bibliothèque open source EasyWeChat pour gérer la logique de connexion WeChat. Dans le middleware, nous déterminons si la requête contient le paramètre code. S'il existe, cela signifie que l'utilisateur a été autorisé, et nous pouvons obtenir les informations de l'utilisateur via ce paramètre. Si le paramètre coden'existe pas, cela signifie que l'utilisateur n'a pas été autorisé et nous devons passer à l'autorisation de connexion WeChat. Ensuite, nous devons enregistrer le middleware dans le framework Laravel. Ouvrez le fichier app/Http/Kernel.phpet ajoutez le code suivant au tableau $routeMiddleware: rrreeeEnsuite, nous devons l'appliquer à une route ou une route middleware de groupe. Dans le fichier routes/web.php, ajoutez le code suivant à la fermeture de la route : rrreeeMaintenant, nous avons terminé la configuration de l'utilisation du middleware pour implémenter l'autorisation de connexion WeChat dans Laravel. Lorsque l'accès de l'utilisateur est défini comme un itinéraire nécessitant une autorisation de connexion WeChat, le système vérifiera d'abord l'autorisation de connexion WeChat. Si l'utilisateur n'a pas été autorisé, il accédera à la page de connexion WeChat pour l'autorisation. il reviendra à la page de connexion WeChat que nous avons définie. L'URL de rappel contient le paramètre code, grâce auquel nous pouvons obtenir des informations sur l'utilisateur. Ce qui précède est une introduction et un exemple de code sur la façon d'utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel. J'espère que cet article pourra être utile pour résoudre les problèmes d'autorisation de connexion WeChat que vous rencontrez pendant le développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!