Ajouter une connexion à votre application Laravel
La Auth0’s Laravel SDK (trousse SDK Laravel Auth0) vous permet d’ajouter rapidement l’authentification, la gestion du profil utilisateur et le contrôle d’accès au routage à votre application Laravel. Ce guide explique comment intégrer Auth0 avec une nouvelle (ou existante) application Laravel 9 or 10 (Laravel 9 ou 10).
Si vous n’avez pas déjà configuré une application Laravel, ouvrez un shell dans un répertoire approprié pour un nouveau projet et exécutez la commande suivante :
composer create-project --prefer-dist laravel/laravel auth0-laravel-app ^9.0
Toutes les commandes de ce guide supposent que vous les exécutez à partir de la racine de votre projet Laravel, donc vous devez placer cd
dans le nouveau répertoire du projet :
cd auth0-laravel-app
Exécutez la commande suivante dans le répertoire de votre projet pour installer la trousse Auth0 Laravel SDK :
composer require auth0/login:^7.8 --update-with-all-dependencies
Générez ensuite un fichier de configuration pour la trousse SDK pour votre application :
php artisan vendor:publish --tag auth0
Exécutez la commande suivante à partir du répertoire de votre projet pour télécharger l’interface de ligne de commande (CLI) Auth0 :
curl -sSfL HTTPs://raw.githubusercontent.com/auth0/auth0-cli/main/install.sh | sh -s -- -b .
Ensuite, authentifiez la CLI avec votre compte Auth0 en choisissant « as a user (en tant qu’utilisateur) » lorsque vous y êtes invité :
./auth0 login
Ensuite, créez une nouvelle application avec Auth0 :
./auth0 apps create \
--name "My Laravel Application" \
--type "regular" \
--auth-method "post" \
--callbacks "http://localhost:8000/callback" \
--logout-urls "http://localhost:8000" \
--reveal-secrets \
--no-input \
--json > .auth0.app.json
Was this helpful?
Vous devez également créer une nouvelle API :
./auth0 apis create \
--name "My Laravel Application's API" \
--identifier "https://github.com/auth0/laravel-auth0" \
--offline-access \
--no-input \
--json > .auth0.api.json
Was this helpful?
Cela produit deux fichiers qui configurent la trousse SDK dans votre répertoire de projet.
Comme ces fichiers contiennent des renseignements personnels, il est important de les traiter comme étant sensibles. Vous devez vous assurer de ne pas les soumettre au contrôle de version. Si vous utilisez Git, vous devez les ajouter à votre fichier .gitignore
:
echo ".auth0.*.json" >> .gitignore
La trousse SDK enregistre automatiquement toutes les routes nécessaires pour que les utilisateurs de votre application s’authentifient.
**Routes** | **Objet** |
---|---|
/login |
Initie le flux d’authentification. |
/logout |
Déconnecte l’utilisateur. |
/callback |
Gère le rappel de Auth0. |
Si vous avez besoin d’un plus grand contrôle sur les utilisateurs, ou s’ils entrent en conflit avec les routes existantes dans votre application, vous pouvez enregistrer manuellement les contrôleurs de la trousse SDK. Veuillez consulter le fichier de mise à jour de la trousse SDK README pour les intégrations avancées.
Les installations d’authentification de Laravel utilisent des « gardes » pour définir comment les utilisateurs sont authentifiés pour chaque demande. Vous pouvez utiliser la protection d’authentification de la trousse SDK Auth0 pour restreindre l’accès aux routes de votre application.
Pour exiger que les utilisateurs s’authentifient avant d’accéder à une route, vous pouvez utiliser l’intergiciel auth
de Laravel.
Route::get('/private', function () {
return response('Welcome! You are logged in.');
})->middleware('auth');
Was this helpful?
Vous pouvez également exiger que les utilisateurs authentifiés aient des autorisations spécifiques en combinant cela avec l'intergiciel can
de Laravel.
Route::get('/scope', function () {
return response('You have `read:messages` permission, and can therefore access this resource.');
})->middleware('auth')->can('read:messages');
Was this helpful?
Les renseignements de l’utilisateur authentifié sont accessibles à partir de la Facade Auth
de Laravel, ou de la fonction d’assistance auth()
.
Par exemple, pour récupérer l’identificateur et l’adresse courriel de l’utilisateur :
Route::get('/', function () {
if (! auth()->check()) {
return response('You are not logged in.');
}
$user = auth()->user();
$name = $user->name ?? 'User';
$email = $user->email ?? '';
return response("Hello {$name}! Your email address is {$email}.");
});;
Was this helpful?
Vous pouvez mettre à jour les informations utilisateur en utilisant la Auth0 Management API. Tous les terminaux de gestion sont accessibles via la méthode management()
de la trousse SDK.
Avant de faire des appels à la Management API, vous devez permettre à votre application de communiquer avec la Management API. Cela peut être fait à partir de la page API du Auth0 Dashboard, en choisissant la Auth0 Management API
et en sélectionnant l’onglet Machine to Machine Applications (Communication entre machines). Autoriser votre application Laravel, puis cliquez sur la flèche vers le bas pour choisir les permissions que vous souhaitez accorder.
Pour l’exemple suivant, dans lequel nous allons mettre à jour les métadonnées d’un utilisateur et attribuer une couleur préférée aléatoire, vous devez accorder les permissions read:users
et update:users
. Une liste des points de terminaison API et les permissions requises peuvent être trouvées dans la documentation de la Management API.
use Auth0\Laravel\Facade\Auth0;
Route::get('/colors', function () {
$endpoint = Auth0::management()->users();
$colors = ['red', 'blue', 'green', 'black', 'white', 'yellow', 'purple', 'orange', 'pink', 'brown'];
$endpoint->update(
id: auth()->id(),
body: [
'user_metadata' => [
'color' => $colors[random_int(0, count($colors) - 1)]
]
]
);
$metadata = $endpoint->get(auth()->id());
$metadata = Auth0::json($metadata);
$color = $metadata['user_metadata']['color'] ?? 'unknown';
$name = auth()->user()->name;
return response("Hello {$name}! Your favorite color is {$color}.");
})->middleware('auth');
Was this helpful?
Un guide de référence rapide de toutes les méthodes de la Management API de la trousse SDK est disponible ici.
Vous êtes maintenant prêt à lancer votre application Laravel, de sorte qu’elle puisse accepter les demandes :
php artisan serve
checkpoint.header
Ouvrez votre navigateur Web et essayez d’accéder aux routes suivantes :
http://localhost:8000 pour voir la route publique.
http://localhost:8000/private pour être invité à s’authentifier.
http://localhost:8000 pour voir la route publique, maintenant authentifiée.
http://localhost:8000/scope pour vérifier si vous avez l’autorisation
read:messages
.http://localhost:8000/update pour mettre à jour le profil utilisateur.
http://localhost:8000/logout pour vous déconnecter.
Lecture supplémentaire
Référentiels et modèles d’utilisateurs étend la trousse SDK Laravel Auth0 pour utiliser des modèles d’utilisateurs personnalisés, et comment stocker et récupérer les utilisateurs à partir d’une base de données.
Événements d’appels explique comment écouter les événements soulevés par la trousse SDK Laravel Auth0, pour personnaliser pleinement le comportement de votre intégration.
Le soutien de la Management API est intégré à la trousse SDK Laravel Auth0, vous permettant d’interagir avec Management API à partir de votre application Laravel.
Next Steps
Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.
This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:
- Auth0 Dashboard - Learn how to configure and manage your Auth0 tenant and applications
- laravel-auth0 SDK - Explore the SDK used in this tutorial more fully
- Auth0 Marketplace - Discover integrations you can enable to extend Auth0’s functionality
Sign up for an or to your existing account to integrate directly with your own tenant.