Table des matières
guard dans laravel
Maison cadre php Laravel Qu'est-ce que la garde dans Laravel

Qu'est-ce que la garde dans Laravel

Jun 02, 2022 pm 05:54 PM
laravel

Dans Laravel, guard est un plug-in pour l'authentification des utilisateurs ; le rôle de guard est de traiter l'authentification et de juger chaque demande, de lire les données de la base de données et de les comparer avec les entrées de l'utilisateur, d'appeler si l'utilisateur s'est connecté ou est autorisé à se connecter. passer, et Guard It peut être très flexible pour construire son propre système de certification.

Qu'est-ce que la garde dans Laravel

L'environnement d'exploitation de cet article : système Windows 10, Laravel version 5.4, ordinateur Dell G3.

guard dans laravel

En fait, vous pouvez comprendre s'il s'agit de Guard ou Provide. Un plug-in pour une fonction spécifique.

Son rôle est de traiter une authentification pour déterminer si chaque demande ou appel a été connecté ou autorisé à passer

Qu'est-ce que Guard

Dans le framework Laravel/Lumen, la connexion/l'enregistrement de l'utilisateur L'authentification est. essentiellement emballé et prêt à l’emploi dès la sortie de la boîte. Le cœur de l'authentification de connexion/enregistrement est le suivant :

Les informations d'enregistrement de l'utilisateur sont stockées dans la base de données (enregistrement)

Lire les données de la base de données et les comparer avec les entrées de l'utilisateur (authentification)

Les deux étapes ci-dessus constituent les bases de la connexion /registration. Comme vous pouvez le constater, les opérations de base de données sont impliquées. La couche inférieure du cadre en deux étapes a déjà été réalisée pour nous, et de nombreuses situations ont été prises en compte. Par exemple, la table de données pour l'authentification des utilisateurs n'est pas celle-ci. user mais admin_user, le champ d'authentification est le téléphone au lieu de l'e-mail, etc. Certains problèmes sont résolus par Guard Grâce à Guard, vous pouvez spécifier la table de données et les champs à utiliser, etc. Guard peut créer votre propre système d'authentification de manière très flexible.

En termes simples, c'est comme ça : Guard est comme le gardien d'une communauté, froid et impitoyable, il ne reconnaît pas les gens, il ne reconnaît que les informations d'enregistrement.

L'oncle doit vérifier votre identité avant d'entrer dans la communauté. Si la vérification échoue, l'oncle ne vous laissera pas entrer.

Si vous marchez ou faites du vélo, l'oncle 1 doit vérifier votre carte d'accès. Il sort le livre qui enregistre les informations de la carte d'accès de tous les propriétaires de la communauté pour voir si les informations de votre carte d'accès se trouvent dans ce livre

 ; Si vous conduisez Lorsque vous entrez, Oncle 2 vérifiera votre numéro de plaque d'immatriculation dans le livre qui a enregistré les numéros de plaque d'immatriculation de tous les propriétaires. Par conséquent, lorsque le nouveau propriétaire emménage dans la communauté, il devra informer les portiers de votre accès. informations de carte ou numéro de plaque d'immatriculation, sinon oncle 2 ne vous laissera pas entrer.

Si le gestionnaire immobilier souhaite entrer dans la communauté, l'oncle portier 3 ne reconnaîtra que les informations d'enregistrement. Le gestionnaire montrera sa carte d'accès de gestionnaire et l'oncle portier vérifiera le livre qui enregistre les informations de la carte d'accès du gestionnaire.

Ce qui précède correspond à l'authentification multi-utilisateurs dans le cadre :

marcheur/cycliste-> carte d'accès

numéro de plaque d'immatriculation

gestionnaire immobilier-> les numéros de plaque sont différentes méthodes d'authentification, et le livre que le gardien a consulté correspond aux informations de l'utilisateur dans différentes bases de données. Est-il plus facile à comprendre de cette façon ?

Lumen/Laravel fournit une authentification très flexible sous forme de middleware, et plusieurs authentifications peuvent être commutées grâce à une configuration simple.

Le schéma de workflow est le suivant :


Quest-ce que la garde dans LaravelComme vous pouvez le voir sur l'image, un Guard impliquera trois parties, à savoir :

    La mise en œuvre de Guard elle-même
  • User Provider fournisseur d'utilisateurs, précisez lequel la table de données est obtenue de quelle manière (éloquente/base de données)
  • L'interface Authenticatable stipule quelles choses peuvent être authentifiées, quelle est l'interface qui l'implémente

Connaissances étendues : Garde Ma compréhension est qu'il devrait C'est quelque chose de similaire à l'authentification des utilisateurs.

Il existe des paramètres pour configurer les gardes dans config/auth.php. On peut voir que le Web et l'API sont deux gardes.

Dans le cadre d'une activité normale, l'API peut être davantage une opération d'un utilisateur frontal, tandis que le Web est davantage une opération d'un utilisateur back-end.

La configuration par défaut pointe vers le fournisseur d'utilisateurs.

/*
    | Authentication Guards
    |认证关卡
    | Next, you may define every authentication guard for your application. Of course, a great default configuration has been defined for you here which uses session storage and the Eloquent user provider.
    |接下来,你可能要为你的应用定义每个认证关卡。当然,已经为你定一了一个很不错的默认配置。这里会使用会话储存和用户模型
    | All authentication drivers have a user provider. This defines how the users are actually retrieved out of your database or other storage mechanisms used by this application to persist your user's data.
    |所有的认证驱动都有一个用户提供者。这里定义了怎么实际上怎么从你的数据库或者其他储存机制中取出用户。以便应用开保持你的用户数据
    | Supported: "session", "token"
    |可选驱动:"session", "token"
    */
'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],
Copier après la connexion

Ensuite, voyons quelle est la configuration du fournisseur.

  /*
    | User Providers
    |用户提供者
    | If you have multiple user tables or models you may configure multiple sources which represent each model / table. These sources may then be assigned to any extra authentication guards you have defined.
    | 如果你有多个用户表或用户模型,你可以配置多个代表用户表或模型的资源。这些资源可能被分配给应用中你定义的其他认证关卡
    | Supported: "database", "eloquent"
    |
    */
 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],
Copier après la connexion

Avez-vous la configuration des utilisateurs que vous venez de voir chez les fournisseurs ? Il s'agit du groupe d'utilisateurs pour configurer Laravel, car dans des circonstances normales, les utilisateurs front-end et back-end fonctionnent séparément. Vous pouvez donc créer ici un nouveau groupe d'utilisateurs administrateur et le configurer. Par défaut, seuls les utilisateurs sont utilisés par défaut.

En conséquence, les opérations de mot de passe pour chaque groupe d'utilisateurs doivent être différentes, il y a donc également une configuration de mot de passe ici.

  /*
    | Resetting Passwords
    | 密码重置
    | You may specify multiple password reset configurations if you have more than one user table or model in the application and you want to have separate password reset settings based on the specific user types.
    | 如果你有多个用户模型或表,并且想对不同用户类型有特定的密码重置,则可以配置多个特定的重置密码
    | The expire time is the number of minutes that the reset token should be considered valid. This security feature keeps tokens short-lived so they have less time to be guessed. You may change this as needed.
    |这个获取时间是令牌过期的分钟数,这个安全措施可以保证令牌保持段时间有效,因此有更少的时间被破解。你可以按照需要更改。
    */
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
Copier après la connexion

Nous utilisons généralement Auth::check() pour détecter les utilisateurs connectés ou si l'utilisateur est connecté. En effet, lors de l'utilisation de la configuration par défaut, guard est automatiquement configuré en tant que groupe d'utilisateurs.

  /*
    | Authentication Defaults
    | 默认认证配置
    | This option controls the default authentication "guard" and password reset options for your application. You may change these defaults as required, but they're a perfect start for most applications.
    | 这个就是应用的默认认证关卡个重置密码,你可以按自己要求更改。但这是最适合一个新应用的配置
    */
    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],
Copier après la connexion

Web Guard pointe vers le modèle des utilisateurs.

Mais comment vérifier quand on a deux groupes d'utilisateurs, recto et verso ?

Auth::check() est une méthode permettant de déterminer si l'utilisateur est connecté. Si le système utilisateur par défaut est utilisé, il n'y a aucun problème à l'utiliser de cette façon.

Mais si vous utilisez deux groupes d'utilisateurs, vous devez fonctionner comme ceci :

Auth::guard('api')->check() est utilisé pour déterminer si l'utilisateur frontal est connecté. Auth : :guard('web')-> ;check() est utilisé pour déterminer si l'utilisateur en arrière-plan est connecté

Donc, si vous utilisez un groupe d'utilisateurs autre que celui par défaut, vous devez le spécifier avec guard.

Donc, ce que nous utilisons habituellement est la configuration par défaut. Pour l'écrire dans son intégralité, cela devrait être Auth::guard('web)->check()

[Recommandation associée : tutoriel vidéo laravel]

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison des dernières versions de Laravel et CodeIgniter Comparaison des dernières versions de Laravel et CodeIgniter Jun 05, 2024 pm 05:29 PM

Les dernières versions de Laravel 9 et CodeIgniter 4 fournissent des fonctionnalités et des améliorations mises à jour. Laravel9 adopte l'architecture MVC et fournit des fonctions telles que la migration de bases de données, l'authentification et le moteur de modèles. CodeIgniter4 utilise l'architecture HMVC pour fournir le routage, l'ORM et la mise en cache. En termes de performances, le modèle de conception basé sur le fournisseur de services de Laravel9 et le framework léger de CodeIgniter4 lui confèrent d'excellentes performances. Dans les applications pratiques, Laravel9 convient aux projets complexes qui nécessitent de la flexibilité et des fonctions puissantes, tandis que CodeIgniter4 convient au développement rapide et aux petites applications.

Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Jun 01, 2024 pm 01:34 PM

Comparez les capacités de traitement des données de Laravel et CodeIgniter : ORM : Laravel utilise EloquentORM, qui fournit un mappage relationnel classe-objet, tandis que CodeIgniter utilise ActiveRecord pour représenter le modèle de base de données en tant que sous-classe de classes PHP. Générateur de requêtes : Laravel dispose d'une API de requêtes chaînées flexible, tandis que le générateur de requêtes de CodeIgniter est plus simple et basé sur des tableaux. Validation des données : Laravel fournit une classe Validator qui prend en charge les règles de validation personnalisées, tandis que CodeIgniter a moins de fonctions de validation intégrées et nécessite un codage manuel des règles personnalisées. Cas pratique : l'exemple d'enregistrement d'utilisateur montre Lar

Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Jun 05, 2024 pm 07:50 PM

Pour les débutants, CodeIgniter a une courbe d'apprentissage plus douce et moins de fonctionnalités, mais couvre les besoins de base. Laravel offre un ensemble de fonctionnalités plus large mais a une courbe d'apprentissage légèrement plus raide. En termes de performances, Laravel et CodeIgniter fonctionnent bien. Laravel dispose d'une documentation plus complète et d'un support communautaire actif, tandis que CodeIgniter est plus simple, léger et possède de solides fonctionnalités de sécurité. Dans le cas pratique de la création d'une application de blog, EloquentORM de Laravel simplifie la manipulation des données, tandis que CodeIgniter nécessite une configuration plus manuelle.

Laravel vs CodeIgniter : quel framework est le meilleur pour les grands projets ? Laravel vs CodeIgniter : quel framework est le meilleur pour les grands projets ? Jun 04, 2024 am 09:09 AM

Lors du choix d'un framework pour de grands projets, Laravel et CodeIgniter ont chacun leurs propres avantages. Laravel est conçu pour les applications d'entreprise, offrant une conception modulaire, une injection de dépendances et un ensemble de fonctionnalités puissantes. CodeIgniter est un framework léger plus adapté aux projets de petite et moyenne taille, mettant l'accent sur la rapidité et la facilité d'utilisation. Pour les grands projets avec des exigences complexes et un grand nombre d'utilisateurs, la puissance et l'évolutivité de Laravel sont plus adaptées. Pour les projets simples ou les situations avec des ressources limitées, les capacités de développement légères et rapides de CodeIgniter sont plus idéales.

Laravel - Commandes artisanales Laravel - Commandes artisanales Aug 27, 2024 am 10:51 AM

Laravel - Artisan Commands - Laravel 5.7 est livré avec une nouvelle façon de traiter et de tester de nouvelles commandes. Il inclut une nouvelle fonctionnalité de test des commandes artisanales et la démonstration est mentionnée ci-dessous ?

Laravel vs CodeIgniter : quel framework est le meilleur pour les petits projets ? Laravel vs CodeIgniter : quel framework est le meilleur pour les petits projets ? Jun 04, 2024 pm 05:29 PM

Pour les petits projets, Laravel convient aux projets plus importants qui nécessitent des fonctionnalités et une sécurité élevées. CodeIgniter convient aux très petits projets qui nécessitent légèreté et facilité d'utilisation.

Quel est le meilleur moteur de template, Laravel ou CodeIgniter ? Quel est le meilleur moteur de template, Laravel ou CodeIgniter ? Jun 03, 2024 am 11:30 AM

En comparant le moteur de modèles Blade de Laravel et le moteur de modèles Twig de CodeIgniter, choisissez en fonction des besoins du projet et de vos préférences personnelles : Blade est basé sur la syntaxe MVC, qui encourage une bonne organisation du code et un héritage de modèles. Twig est une bibliothèque tierce qui offre une syntaxe flexible, des filtres puissants, une prise en charge étendue et un bac à sable de sécurité.

Laravel - Personnalisations de la pagination Laravel - Personnalisations de la pagination Aug 27, 2024 am 10:51 AM

Laravel - Personnalisations de pagination - Laravel inclut une fonctionnalité de pagination qui aide un utilisateur ou un développeur à inclure une fonctionnalité de pagination. Le paginateur Laravel est intégré au générateur de requêtes et à Eloquent ORM. La méthode paginate automatique

See all articles