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
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('login', 'Auth\AuthController@showLoginForm'); $this->post('login', 'Auth\AuthController@login'); $this->get('logout', 'Auth\AuthController@logout'); // Registration Routes... $this->get('register', 'Auth\AuthController@showRegistrationForm'); $this->post('register', 'Auth\AuthController@register'); // Password Reset Routes... $this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm'); $this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail'); $this->post('password/reset', 'Auth\PasswordController@reset'); }
#2 configuration du fichier auth.php
, 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
Route::group(['prefix'=>'{guard}'],function(){ Route::auth();});
$request->input('key')
$request->key
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
<🎜. >
Route::get('profile', [ 'middleware' => 'auth:api', 'uses' => 'ProfileController@show']);
#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 .
$user = Auth::user();
$user = Auth::guard('guard')->user();
#6 总结
总得来说,Laravel5.2自带的Auth系统还是很好用的,只是有一些小坑文档没说清楚,用过几次之后就可以很熟悉了,可以给我们节约很多的开发时间。
相关推荐:
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!