Maison  >  Article  >  cadre php  >  Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel

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

PHPz
PHPzoriginal
2023-11-03 10:55:461479parcourir

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"

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

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

Ensuite, nous devons configurer le framework Laravel pour nous connecter à l'aide de WeChat. Ouvrez le fichier .env dans 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

其中,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

Parmi eux, your_app_id et your_app_secret doivent être remplacés par votre propre plateforme ouverte WeChat L'ID et la clé de l'application. your_callback_url est 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 : 🎜rrreee🎜Après avoir exécuté la commande ci-dessus, Laravel générera un fichier WeChatAuthMiddleware.php dans le répertoire app/Http/Middleware. Ouvrez le fichier et ajoutez le code suivant à la méthode handle : 🎜rrreee🎜Dans 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 code n'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.php et ajoutez le code suivant au tableau $routeMiddleware : 🎜rrreee🎜Ensuite, 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 : 🎜rrreee🎜Maintenant, 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!

Déclaration:
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