Maison développement back-end tutoriel php Introduction au système d'authentification multi-utilisateurs de Laravel

Introduction au système d'authentification multi-utilisateurs de Laravel

Mar 14, 2018 am 09:17 AM
laravel 多用户 简介

Depuis Laravel 5.2, le système d'authentification Auth intégré peut prendre en charge l'authentification à plusieurs rôles. C'est-à-dire que si vous avez deux rôles : administrateur et utilisateur ordinaire, l'authentification peut être réalisée via le même système d'authentification.

Cet article vous donnera une introduction détaillée au contenu pertinent du système d'authentification multi-utilisateurs de Laravel, et le partagera pour votre référence et votre étude. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil au détail. introduction.

#1 Générer automatiquement du code

Le propre Auth de Laravel peut générer des contrôleurs et des modèles d'authentification pertinents via une seule ligne de commandes et de routage :


php artisan make:auth
Copier après la connexion

Cela générera un contrôleur d'authentification AuthController et un contrôleur général HomeController. Ce contrôleur ne sert à rien. Il saute simplement après une connexion réussie. Il existe également des fichiers modèles requis pour la connexion et l'enregistrement, il suffit de regarder la ressource/la vue ; et les routes d'authentification pertinentes seront générées dans le fichier de routage. Le code source est dans IlluminateRoutingRouter::auth(); , qui configure en fait certaines connexions : <🎜. >


public function auth() { 
 // Authentication Routes... 
 $this->get(&#39;login&#39;, &#39;Auth\AuthController@showLoginForm&#39;); 
 $this->post(&#39;login&#39;, &#39;Auth\AuthController@login&#39;); 
 $this->get(&#39;logout&#39;, &#39;Auth\AuthController@logout&#39;); 
 // Registration Routes... 
 $this->get(&#39;register&#39;, &#39;Auth\AuthController@showRegistrationForm&#39;); 
 $this->post(&#39;register&#39;, &#39;Auth\AuthController@register&#39;); 
 // Password Reset Routes... 
 $this->get(&#39;password/reset/{token?}&#39;, &#39;Auth\PasswordController@showResetForm&#39;); 
 $this->post(&#39;password/email&#39;, &#39;Auth\PasswordController@sendResetLinkEmail&#39;); 
 $this->post(&#39;password/reset&#39;, &#39;Auth\PasswordController@reset&#39;); 
}
Copier après la connexion

#2 configuration du fichier auth.php

Ceci est un fichier de configuration lié à l'authentification. On estime que de nombreuses personnes ne peuvent pas comprendre certains concepts, tels que garde et fournisseur

, et la documentation n'est fondamentalement pas écrite. Alors, qu’est-ce que la garde exactement ? Cela peut être compris comme un rôle. Chaque élément du tableau guards
est un rôle. Les rôles par défaut sont web et api, ce qui signifie que ces deux rôles utilisent actuellement le système d'authentification. Bien sûr, ces deux-là ne répondront certainement pas à nos exigences, c'est pourquoi nous personnalisons généralement certaines protections. La personnalisation est également très simple, il suffit d'ajouter un élément au tableau des gardes, où le pilote indique comment enregistrer le statut de l'utilisateur pour cette authentification, généralement dans la session, et le fournisseur est un élément dans le tableau des fournisseurs ci-dessous, alors quel est le fournisseur ? Du drap de laine ? C'est plus facile à comprendre. Si vous souhaitez implémenter l'authentification utilisateur, vous devez enregistrer le nom d'utilisateur et le mot de passe, n'est-ce pas ? Ensuite, le fournisseur indique à Laravel dans quelle table vos informations utilisateur sont stockées, et le pilote indique à Laravel quelle méthode utiliser pour faire fonctionner le système. base de données.

#3 Authentification

En fait, le code généré automatiquement par Laravel peut déjà répondre aux besoins de connexion et enregistrement, mais à chaque fois Chaque garde nécessite un AuthController, alors comment partager un contrôleur d'authentification ? Guard est utilisé ici car il peut représenter l'identité de l'utilisateur pour exécuter une logique différente. Cependant, cette garde ne peut pas être obtenue dans le contrôleur d'authentification, nous pouvons donc la réaliser via des paramètres de routage. Définir un groupe de routage :



Route::group([&#39;prefix&#39;=>&#39;{guard}&#39;],function(){ Route::auth();});
Copier après la connexion
Dans ce groupe de routage, nous définissons le préfixe du paramètre guard, afin que celui actuel puisse être obtenu dans l'AuthController Gardé. Dans des circonstances normales, nous obtenons les paramètres de routage via l'injection de dépendances dans l'instance Request, mais il y a aussi un piège ici, c'est-à-dire qu'avant la version 5.1, les paramètres de routage pouvaient être transmis



$request->input(&#39;key&#39;)
Copier après la connexion
peut être obtenu de cette manière, mais cela ne fonctionne plus en 5.2. Il faut l'obtenir via



$request->key
Copier après la connexion
, ou directement depuis l'instance de routage Get, je ne sais pas pourquoi. Certains traits sont utilisés dans le contrôleur AuthController. Ces traits implémentent la logique d'enregistrement de l'authentification. Vous pouvez personnaliser la logique en réécrivant certaines propriétés du contrôleur. Y compris

et $redirectTo et $guard, etc. En un coup d'œil, vous pouvez dire que le premier consiste à sauter après une connexion réussie, le deuxième consiste à définir la garde actuellement utilisée et le troisième est le nom d'utilisateur utilisé pour la partie authentification. On peut donc le personnaliser en obtenant la garde dans le contrôleur d'authentification. $username

#4 Protection des routes

En général, ceux qui fabriquent des systèmes d'authentification doivent protéger les routes, et alors ? un routage protégé ? Le document dit d'ajouter un middleware d'authentification aux routes qui doivent être protégées, mais quelle est la réalité ? C'est bien le cas, mais ce que le document ne dit pas c'est que la route protégée par le middleware d'authentification doit également être ajoutée avec le middleware web, doit également être ajoutée avec le middleware web, doit également être ajoutée avec le middleware web, c'est important Vous avez dire les choses trois fois, sinon quels problèmes vont surgir ? Que votre authentification réussisse ou échoue, vous passerez à la route / Attention à ce gros écueil ! Bien sûr, vous pouvez également spécifier guard dans le middleware pour indiquer à Laravel par lequel s'authentifier. S'il n'est pas spécifié, celui par défaut dans le fichier de configuration sera utilisé :


<🎜. >

Route::get(&#39;profile&#39;, [ &#39;middleware&#39; => &#39;auth:api&#39;, &#39;uses&#39; => &#39;ProfileController@show&#39;]);
Copier après la connexion

#5 Obtenir l'instance utilisateur
Après avoir réussi l'authentification, vous pouvez obtenir l'instance utilisateur actuellement authentifiée via la façade Auth .



Une autre chose à noter ici est que la méthode ci-dessus obtient la garde dans le fichier de configuration par défaut si vous êtes actuellement connecté à guard If. il n'est pas dans le fichier de configuration, vous devez l'obtenir comme ceci :
$user = Auth::user();
Copier après la connexion


$user = Auth::guard(&#39;guard&#39;)->user();
Copier après la connexion

#6 总结

总得来说,Laravel5.2自带的Auth系统还是很好用的,只是有一些小坑文档没说清楚,用过几次之后就可以很熟悉了,可以给我们节约很多的开发时间。

相关推荐:

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 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
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)

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 - Console artisanale Laravel - Console artisanale Aug 27, 2024 am 10:51 AM

Laravel - Artisan Console - Le framework Laravel fournit trois outils principaux d'interaction via la ligne de commande, à savoir : Artisan, Ticker et REPL. Ce chapitre explique en détail Artisan.

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

Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Laravel - Serveur de vidage Laravel - Serveur de vidage Aug 27, 2024 am 10:51 AM

Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

See all articles