Laravel est un framework de développement Web PHP populaire qui fournit de nombreuses fonctionnalités et outils puissants pour simplifier le développement et la maintenance d'applications Web. Laravel Sanctum est un plugin pour le framework Laravel qui fournit des capacités d'authentification et d'autorisation API pour protéger facilement vos points de terminaison API contre tout accès non autorisé.
Dans cet article, nous apprendrons comment implémenter l'authentification et l'autorisation API à l'aide de Laravel Sanctum.
1. Qu'est-ce que le sanctuaire de Laravel ?
Laravel Sanctum est un package d'authentification léger qui fournit des fonctionnalités d'authentification et d'autorisation API simples mais puissantes. Il est basé sur le middleware Laravel et l'authentification HTTP, nous permettant d'attacher en toute sécurité des jetons d'authentification aux requêtes API.
Laravel Sanctum prend en charge deux méthodes d'authentification : l'authentification basée sur les cookies et l'authentification basée sur les jetons. L'authentification basée sur les cookies utilise le middleware Laravel pour vérifier qu'un cookie d'authentification valide est présent dans la demande. Une autre façon de vérifier le jeton dans l'en-tête de classe et de vérifier s'il est valide.
2. Installez Laravel Sanctum
Avant de commencer, nous devons d'abord installer Laravel Sanctum. Laravel Sanctum peut être facilement installé à l'aide du gestionnaire de packages composer :
composer require laravel/sanctum
Bien sûr, il peut également être installé manuellement en ajoutant les exigences suivantes dans le fichier composer.json :
{ "require": { "laravel/sanctum": "^2.9" } }
Une fois terminé, exécutez la commande suivante pour publier le Laravel Fichier de configuration Sanctum et fichier de migration de base de données :
php artisan vendor:publish --tag=sanctum-config php artisan vendor:publish --tag=sanctum-migrations php artisan migrate
3. Configurez Laravel Sanctum
Modifiez le fichier app/Http/kernel.php et ajoutez le middleware Sanctum :
// app/Http/Kernel.php protected $middleware = [ // ... LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, ]; protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, 'throttle:api', IlluminateRoutingMiddlewareSubstituteBindings::class, ], ];
Cela garantira que l'authentification basée sur les cookies de Sanctum pourra être utilisée lors de chaque demande.
Ouvrez le fichier config/auth.php, recherchez les valeurs par défaut et les gardes et configurez-les pour utiliser sancttum.
// config/auth.php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], ],
Cela nous permettra d'utiliser Sanctum pour l'authentification basée sur des jetons.
Si vous utilisez une nouvelle version de Laravel, vous n'avez pas besoin d'ajouter de fournisseur. Si vous utilisez une ancienne version, veuillez ouvrir le fichier config/app.php et ajouter la ligne suivante dans le tableau des fournisseurs :
LaravelSanctumSanctumServiceProvider::class,
IV Create Authorization Token
Maintenant que nous avons configuré Laravel Sanctum, nous allons en apprendre davantage. suivant Comment utiliser Sanctum pour créer des jetons d'autorisation.
public function createToken(Request $request) { $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]); if($user) { $token = $user->createToken('API Token')->plainTextToken; return response()->json([ 'token' => $token, ]); } else { return response()->json([ 'message' => 'Invalid credentials', ], 401); } }
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
5. Implémenter l'authentification et l'autorisation de l'API
Après avoir créé le jeton d'autorisation, nous pouvons utiliser Sanctum pour protéger le point de terminaison de l'API contre tout accès non autorisé. Nous pouvons utiliser le middleware de routage Laravel pour vérifier le jeton d'authentification et refuser tout accès non autorisé.
// routes/api.php Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
Cette route sera protégée à l'aide du middleware d'authentification Sanctum.
php artisan serve
Désormais, la route /api/user est accessible pour afficher les détails de l'utilisateur connecté. Désormais, sans l'en-tête Authorization, vous ne pourrez pas y accéder et renverrez un code d'état HTTP 401 Unauthorized.
6. Fin
Laravel Sanctum est une solution d'authentification et d'autorisation puissante et facile à utiliser qui peut facilement implémenter l'authentification et l'autorisation dans les applications Web et les API Web Laravel. Il protège facilement vos points de terminaison d'API contre tout accès non autorisé et vous permet de contrôler facilement quels utilisateurs peuvent accéder à quels points de terminaison d'API. Dans cet article, nous avons appris comment installer et configurer Laravel Sanctum et comment l'utiliser pour créer des jetons d'autorisation et implémenter l'authentification et l'autorisation API.
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!