


Gestion des utilisateurs et contrôle des autorisations dans Laravel : implémentation de plusieurs utilisateurs et attributions de rôles
Gestion des utilisateurs et contrôle des autorisations dans Laravel : implémentation de plusieurs utilisateurs et attribution de rôles
Introduction :
Dans les applications Web modernes, la gestion des utilisateurs et le contrôle des autorisations sont l'une des fonctions très importantes. Laravel, en tant que framework PHP populaire, fournit des outils puissants et flexibles pour implémenter le contrôle des autorisations pour plusieurs utilisateurs et attributions de rôles. Cet article présentera comment implémenter les fonctions de gestion des utilisateurs et de contrôle des autorisations dans Laravel, et fournira des exemples de code pertinents.
1. Installation et configuration
Tout d'abord, pour implémenter les fonctions de gestion des utilisateurs et de contrôle des autorisations dans Laravel, nous devons installer et configurer les deux packages suivants : Laravel Breeze et Spatie Laravel Permission.
1.1 Installer Laravel Breeze
Laravel Breeze est un système d'authentification léger qui peut nous aider à créer rapidement l'enregistrement, la connexion, la déconnexion des utilisateurs et d'autres fonctions. Tout d'abord, exécutez la commande suivante dans la ligne de commande pour installer Laravel Breeze :
composer require laravel/breeze --dev
Ensuite, exécutez la commande suivante pour installer et configurer Laravel Breeze :
php artisan breeze:install npm install npm run dev
1.2 Installer Spatie Laravel Permission
Spatie Laravel Permission est un outil de gestion des utilisateurs. Le package permissions peut nous aider à mettre en œuvre des fonctions d’autorisation de rôle et de gestion des droits. Exécutez la commande suivante pour installer l'autorisation Spatie Laravel :
composer require spatie/laravel-permission php artisan vendor:publish --provider="SpatiePermissionPermissionServiceProvider" php artisan migrate
2. Gestion des utilisateurs
2.1 Créer un modèle utilisateur et une migration
Tout d'abord, exécutez la commande suivante dans la ligne de commande pour créer le modèle utilisateur et le fichier de migration de base de données :
php artisan make:model User -m
Ensuite, dans Dans le fichier de modèle utilisateur généré, ajoutez le code suivant :
use IlluminateFoundationAuthUser as Authenticatable; use SpatiePermissionTraitsHasRoles; class User extends Authenticatable { use HasRoles; // 其他代码... }
Ensuite, dans le fichier de migration de base de données généré, ajoutez le code suivant pour définir les champs de la table utilisateur :
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
Enfin, exécutez la commande suivante pour lancez la migration de la base de données :
php artisan migrate
2.2 Inscription et connexion
Laravel Breeze nous fournit déjà des fonctions d'inscription et de connexion, il suffit de les référencer dans les fichiers de vue correspondants. Dans le répertoire resources/views/auth, ouvrez le fichier register.blade.php et ajoutez le code suivant :
<x-guest-layout> <x-auth-card> <x-slot name="logo"> <a href="/"> <x-application-logo class="w-20 h-20 fill-current text-gray-500" /> </a> </x-slot> <div class="mb-4 text-sm text-gray-600"> {{ __('This is a secure area of the application. Please confirm your password before continuing.') }} </div> <!-- 用户注册代码 --> </x-auth-card> </x-guest-layout>
Ensuite, dans le fichier login.blade.php, ajoutez le code suivant :
<x-guest-layout> <x-auth-card> <x-slot name="logo"> <a href="/"> <x-application-logo class="w-20 h-20 fill-current text-gray-500" /> </a> </x-slot> <!-- 用户登录代码 --> </x-auth-card> </x-guest-layout>
Jusqu'à présent, nous avons terminé Des fonctions d'enregistrement et de connexion des utilisateurs sont fournies.
3. Contrôle des rôles et des autorisations
3.1 Créer un modèle de rôle et d'autorisation
Tout d'abord, exécutez la commande suivante dans la ligne de commande pour créer le modèle de rôle et d'autorisation :
php artisan make:model Role php artisan make:model Permission
Ensuite, dans le fichier de modèle de rôle généré, ajoutez le code suivant :
use SpatiePermissionModelsRole as BaseRole; class Role extends BaseRole { // 其他代码... }
Ensuite, également dans le fichier de modèle d'autorisation généré, ajoutez le code suivant :
use SpatiePermissionModelsPermission as BasePermission; class Permission extends BasePermission { // 其他代码... }
3.2 Attribuer des rôles et des autorisations
Pour attribuer des rôles et des autorisations aux utilisateurs, nous devons écrire les méthodes correspondantes dans l'utilisateur code du contrôleur. Dans le répertoire app/Http/Controllers/Auth, ouvrez le fichier RegisteredUserController.php, et dans la méthode store, ajoutez le code suivant :
// 创建用户 $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); // 角色和权限分配示例 $user->assignRole('writer'); $user->givePermissionTo('create articles');
Dans le code ci-dessus, nous attribuons des rôles et des autorisations aux utilisateurs via les méthodes assignRole et givePermissionTo. .
4. Utiliser un middleware pour le contrôle des autorisations
Dans Laravel, nous pouvons utiliser un middleware pour le contrôle des autorisations. Tout d'abord, dans le fichier app/Http/Kernel.php, enregistrez le middleware fourni par Spatie Laravel Permission :
protected $routeMiddleware = [ // 其他中间件... 'role' => SpatiePermissionMiddlewaresRoleMiddleware::class, 'permission' => SpatiePermissionMiddlewaresPermissionMiddleware::class, ];
Ensuite, utilisez le middleware dans la route correspondante pour restreindre l'accès des utilisateurs :
Route::middleware(['permission:create articles'])->group(function () { // 允许拥有'create articles'权限的用户访问的路由 });
De cette façon, seulement si vous avez 'create Seuls les utilisateurs disposant de l'autorisation d'articles peuvent accéder à cet itinéraire.
Résumé :
Cet article présente comment implémenter la gestion des utilisateurs et le contrôle des autorisations dans Laravel. En utilisant des composants tels que Laravel Breeze et Spatie Laravel Permission, nous pouvons rapidement créer des fonctions d'enregistrement des utilisateurs, de connexion et de contrôle des autorisations de rôle. J'espère que cet article sera utile à tout le monde dans la mise en œuvre du contrôle des autorisations pour plusieurs utilisateurs et attributions de rôles.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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

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 du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

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.

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...
