Maison >développement back-end >tutoriel php >Authentification Laravel à l'aide d'un passeport

Authentification Laravel à l'aide d'un passeport

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 05:18:43852parcourir

Laravel Authentication Using Passport

Maîtriser l'authentification Laravel avec Passport : un guide étape par étape

L'authentification est la pierre angulaire des applications Web modernes. Dans Laravel, Passport fournit une implémentation complète du serveur OAuth2, permettant l'authentification API de manière transparente. Ce guide vous guide tout au long du processus de configuration de Laravel Passport, de l'installation à la sécurisation et au test de votre API.


Présentation

Pourquoi utiliser le passeport Laravel ?

Laravel Passport simplifie les complexités de l'authentification OAuth2 en l'intégrant étroitement à l'écosystème de Laravel. Avec Passeport, vous pouvez :

  • Authentifiez les utilisateurs de l'API en toute sécurité.
  • Générez des jetons d'accès personnels pour les clients mobiles et Web.
  • Gérez facilement l'expiration et la révocation des jetons.

Prérequis

Avant de plonger, assurez-vous d'avoir :

  1. Une compréhension de base de Laravel.
  2. Un projet Laravel (v10.x ou version ultérieure recommandé) installé et configuré avec une base de données.
  3. PHP 8.0 ou version ultérieure installé.

Si vous n'avez pas de projet configuré, créez-en un avec :

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth

Étape 1 : Installer Laravel Passport

Installer le package

Exécutez la commande suivante pour ajouter Passport à votre projet :

composer require laravel/passport

Publier et migrer des fichiers de passeport

Publiez les migrations et les fichiers de configuration Passport :

php artisan vendor:publish --tag=passport-migrations
php artisan migrate

Étape 2 : Configurer le passeport Laravel

Installer les clés de chiffrement et les clients

Exécutez la commande d'installation :

php artisan passport:install

Cela génère des clés de chiffrement et crée des clients OAuth dans votre base de données. Prenez note du résultat, en particulier des identifiants clients et des secrets.

Facultatif : Créer un client d'accès personnel

Pour créer explicitement un client d'accès personnel, exécutez :

php artisan passport:client --personal

Étape 3 : Mettre à jour le modèle

Ajoutez le trait HasApiTokens à votre modèle utilisateur :

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // Other properties...
}

Étape 4 : Mettre à jour la configuration de l'authentification

Configurez Passport comme pilote pour les gardes API dans config/auth.php :

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

Étape 5 : Enregistrez les itinéraires de passeport

Dans AppProvidersAppServiceProvider, chargez les itinéraires de Passport :

use Laravel\Passport\Passport;

public function boot(): void
{
    Passport::routes();
    Passport::tokensExpireIn(now()->addDays(15));
    Passport::refreshTokensExpireIn(now()->addDays(30));
    Passport::personalAccessTokensExpireIn(now()->addMonths(6));
}

Étape 6 : Créer des points de terminaison de l'API d'authentification

Ajouter des itinéraires

Définir les routes API dans routes/api.php :

use App\Http\Controllers\AuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:api')->get('/user', [AuthController::class, 'user']);

Créer le contrôleur d'authentification

Mettre en œuvre des méthodes d'authentification :

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth

Étape 7 : Définir les autorisations pour les clés de chiffrement

Assurer un accès sécurisé aux clés du passeport :

composer require laravel/passport

Vérifier les autorisations :

php artisan vendor:publish --tag=passport-migrations
php artisan migrate

Résultat attendu :

php artisan passport:install

Étape 8 : Tester l'API

Utilisez Postman ou n'importe quel client API pour tester les points de terminaison :

  1. S'inscrire : Envoyez une demande POST à ​​/register avec votre nom, votre e-mail et votre mot de passe.
  2. Connexion : Envoyez une demande POST à ​​/login avec e-mail et mot de passe.
  3. Obtenir les données utilisateur : Envoyez une requête GET à /user avec le jeton dans l'en-tête d'autorisation.

Bonnes pratiques

  • Utilisez HTTPS en production.
  • Faites pivoter périodiquement les clés de chiffrement.
  • Valider minutieusement les entrées.
  • Limitez les portées des jetons pour une meilleure sécurité.

Conclusion

Félicitations ! Vous avez implémenté avec succès l'authentification API à l'aide de Laravel Passport. Cette configuration fournit une base solide pour sécuriser votre API. Explorez les fonctionnalités avancées de Passport telles que les étendues, la révocation des jetons et les informations d'identification du client pour améliorer encore la sécurité de votre application.


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