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

Authentification Laravel à l'aide d'un passeport

Linda Hamilton
Libérer: 2025-01-04 05:18:43
original
799 Les gens l'ont consulté

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
Copier après la connexion
Copier après la connexion

Étape 1 : Installer Laravel Passport

Installer le package

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

composer require laravel/passport
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

É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
Copier après la connexion
Copier après la connexion

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
Copier après la connexion

É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...
}
Copier après la connexion

É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',
    ],
],
Copier après la connexion

É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));
}
Copier après la connexion

É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']);
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

É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
Copier après la connexion
Copier après la connexion

Vérifier les autorisations :

php artisan vendor:publish --tag=passport-migrations
php artisan migrate
Copier après la connexion
Copier après la connexion

Résultat attendu :

php artisan passport:install
Copier après la connexion
Copier après la connexion

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

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal