Passer au contenu principal

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant IA de codage comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter automatiquement l’authentification Auth0 en quelques minutes grâce aux agent skills.Installez :
npx skills add auth0/agent-skills --skill auth0-quickstart --skill auth0-laravel
Demandez ensuite à votre assistant IA :
Add Auth0 authentication to my Laravel app
Votre assistant IA créera automatiquement votre application Auth0, récupérera les identifiants, installera auth0/login, configurera les variables d’environnement et enregistrera les routes d’authentification. Documentation complète des agent skills →
Prérequis : Avant de commencer, assurez-vous d’avoir installé les éléments suivants :Vérifiez l’installation : php --version && composer --version

Pour commencer

Ce guide de démarrage rapide montre comment ajouter l’authentification Auth0 à une application Laravel. Vous configurerez une ouverture de session sécurisée, la fermeture de session, des routes protégées et l’accès au profil utilisateur à l’aide du SDK Auth0 Laravel.
1

Créer un projet Laravel

Si vous avez déjà une application Laravel, passez à l’étape 2.Créez un projet Laravel :
composer create-project laravel/laravel auth0-laravel-app
Ouvrez le répertoire du projet :
cd auth0-laravel-app
2

Installez le SDK Laravel d’Auth0

Exécutez la commande suivante dans le répertoire de votre projet pour installer le SDK Auth0 pour Laravel :
composer require auth0/login:^7 --update-with-all-dependencies
Publiez ensuite le fichier de configuration du SDK :
php artisan vendor:publish --tag auth0
3

Configurer les identifiants d’Auth0

Vous devez créer une application Auth0 et ajouter vos identifiants au projet. Choisissez l’une des méthodes suivantes :
Créez une application Auth0 et copiez les identifiants .env préremplis avec les valeurs de configuration appropriées.Ajoutez ces valeurs au fichier .env de votre projet :
4

Ajouter des routes d’authentification

Le SDK Auth0 enregistre automatiquement les routes suivantes pour votre application — aucune configuration supplémentaire n’est nécessaire :
RouteObjectif
/loginLance le flux de connexion Auth0
/logoutDéconnecte l’utilisateur et redirige vers Auth0
/callbackTraite le rappel d’authentification Auth0
Si votre application utilise Laravel Breeze, Fortify ou Jetstream, les routes /login, /logout et /callback du SDK peuvent entrer en conflit avec celles enregistrées par ces packages. Consultez le README du SDK pour savoir comment enregistrer manuellement les routes.
Mettez à jour routes/web.php pour ajouter votre route d’accueil :
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    if (! auth()->check()) {
        return response('You are not logged in. <a href="/login">Log in</a>');
    }

    $user = auth()->user();
    $name = $user->name ?? 'User';
    $email = $user->email ?? '';

    return response("Hello {$name}! Your email address is {$email}.");
});
5

Protégez les routes à l’aide d’un middleware

Utilisez le middleware auth de Laravel pour exiger une authentification sur n’importe quelle route. Vous pouvez aussi appliquer des autorisations précises à l’aide du middleware can :
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

// Nécessite un utilisateur authentifié
Route::get('/private', function () {
    return response('Welcome! You are logged in.');
})->middleware('auth');

// Nécessite une authentification ET la permission 'read:messages'
Route::get('/scope', function () {
    return response('You have the read:messages permission.');
})->middleware('auth')->can('read:messages');
Les autorisations sont définies dans les paramètres de votre API Auth0 et attribuées aux utilisateurs par l’intermédiaire de rôles. Consultez Role-Based Access Control pour en savoir plus.
6

Lancez votre application

php artisan serve
Votre application s’exécute à l’adresse http://localhost:8000. Si le port 8000 est déjà utilisé, exécutez php artisan serve --port=8001, puis mettez à jour les Allowed Callback URLs et les Allowed Logout URLs de votre application Auth0 pour qu’elles utilisent le nouveau port.
VérificationOuvrez http://localhost:8000 dans votre navigateur. Essayez les routes suivantes pour vérifier votre intégration :

Dépannage

Cause : L’URL de rappel envoyée à Auth0 ne correspond à aucune URL de la liste Allowed Callback URLs de votre application.Correctif :
  1. Accédez au Auth0 DashboardApplications > Applications → votre application → Settings
  2. Ajoutez http://localhost:8000/callback à Allowed Callback URLs
  3. Cliquez sur Save Changes
Assurez-vous qu’il n’y a pas de barre oblique à la fin et que le port correspond à celui du serveur que vous exécutez.
Cause : Mauvaise configuration de la session ou des témoins — la session Laravel ne conserve pas le state entre la redirection de connexion et l’URL de rappel.Correctif :
  1. Assurez-vous que SESSION_DRIVER dans .env est défini à file, database ou redis (et non array)
  2. Videz la configuration et le cache :
php artisan config:clear && php artisan cache:clear
  1. Redémarrez votre serveur de développement
Cause : Le SDK ne trouve pas vos identifiants Auth0.Correctif : Assurez-vous que l’un des éléments suivants existe à la racine de votre projet :
  • Un fichier .env contenant AUTH0_DOMAIN, AUTH0_CLIENT_ID et AUTH0_CLIENT_SECRET
  • Un fichier .auth0.app.json généré par l’interface de ligne de commande Auth0
Après avoir mis à jour .env, videz le cache de configuration :
php artisan config:clear
Cause : Les routes du SDK ne sont pas enregistrées, généralement parce que le fournisseur de services ne s’est pas chargé.Correctif :
  1. Confirmez que vous avez exécuté php artisan vendor:publish --tag auth0
  2. Vérifiez que la découverte automatique du package est activée (vérifiez composer.json pour "dont-discover": [])
  3. Exécutez php artisan route:list | grep auth0 pour confirmer que les routes sont enregistrées
  4. Si les routes sont absentes, enregistrez manuellement le fournisseur de services. Dans Laravel 11+, ajoutez-le à bootstrap/providers.php :
bootstrap/providers.php
return [
    App\Providers\AppServiceProvider::class,
    Auth0\Laravel\Auth0ServiceProvider::class,
];

Utilisation avancée

Vous pouvez mettre à jour les renseignements de l’utilisateur à l’aide de la Auth0 Management API. Tous les points de terminaison de la Management API sont accessibles au moyen de la méthode Auth0::management() du SDK.Avant d’effectuer des appels à la Management API, autorisez votre application à accéder à la Management API :
  1. Accédez à Auth0 DashboardApplications > APIsAuth0 Management API
  2. Sélectionnez l’onglet Machine to Machine Applications
  3. Autorisez votre application Laravel et accordez-lui les scopes read:users et update:users
routes/web.php
<?php

use Auth0\Laravel\Facade\Auth0;
use Illuminate\Support\Facades\Route;

Route::get('/colors', function () {
    $colors = ['red', 'blue', 'green', 'black', 'white', 'yellow', 'purple', 'orange'];

    $users = Auth0::management()->users();

    // Met à jour les métadonnées de l’utilisateur authentifié avec une couleur préférée aléatoire
    $users->update(
        id: auth()->id(),
        body: [
            'user_metadata' => [
                'color' => $colors[random_int(0, count($colors) - 1)],
            ],
        ]
    );

    // Récupère et affiche les métadonnées mises à jour
    $metadata = Auth0::json($users->get(auth()->id()));
    $color = $metadata['user_metadata']['color'] ?? 'unknown';
    $name = auth()->user()->name;

    return response("Hello {$name}! Your favorite color is {$color}.");
})->middleware('auth');
La référence complète de toutes les méthodes de la Management API est disponible dans la documentation du SDK.
Le SDK prend en charge les modèles et référentiels d’utilisateurs personnalisés, ce qui vous permet de stocker et de récupérer les utilisateurs dans votre propre base de données tout en conservant Auth0 comme fournisseur d’identité.Consultez User Repositories and Models pour obtenir le guide d’implémentation complet.
Le SDK déclenche des événements à des étapes clés du cycle de vie de l’authentification — connexion, déconnexion, actualisation des jetons, et plus encore — ce qui vous permet de personnaliser entièrement le comportement sans modifier le code de base du SDK.Consultez Hooking Events pour obtenir la liste complète des événements et des exemples d’implémentation.
Utilisez le RBAC d’Auth0 pour attribuer des autorisations aux utilisateurs au moyen de rôles, puis appliquez-les dans Laravel à l’aide du middleware can :
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/admin', function () {
    return response('Admin area.');
})->middleware('auth')->can('admin:dashboard');
Pour configurer le RBAC :
  1. Accédez à Auth0 DashboardApplications > APIs → votre API → Permissions
  2. Ajoutez les autorisations dont votre application a besoin (par ex., admin:dashboard, read:messages)
  3. Accédez à User Management > Roles, créez un rôle et attribuez-lui des autorisations
  4. Attribuez le rôle aux utilisateurs depuis leur page de profil
Consultez Contrôle d’accès basé sur les rôles pour obtenir le guide complet.

Prochaines étapes

Maintenant que l’authentification fonctionne dans votre application Laravel, explorez d’autres fonctionnalités d’Auth0 :