> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Classe MastraAuthAuth0 La classe `MastraAuthAuth0` fournit une authentification Auth0 à Mastra. Elle vérifie les requêtes entrantes au moyen de tokens JWT émis par Auth0 et s’intègre au serveur Mastra avec l’option `auth`. ## Exemple d’utilisation ```typescript import { Mastra } from '@mastra/core' import { MastraAuthAuth0 } from '@mastra/auth-auth0' export const mastra = new Mastra({ server: { auth: new MastraAuthAuth0({ domain: process.env.AUTH0_DOMAIN, audience: process.env.AUTH0_AUDIENCE, }), }, }) ``` > **Remarque:** Vous pouvez omettre les paramètres du constructeur si les variables d’environnement requises (`AUTH0_DOMAIN` et `AUTH0_AUDIENCE`) sont définies. Dans ce cas, utilisez `new MastraAuthAuth0()` sans argument. ## Paramètres du constructeur **domain** (`string`): Votre domaine Auth0 (par exemple, your-tenant.auth0.com). Il sert à vérifier les tokens JWT émis par votre tenant Auth0. (Default: `process.env.AUTH0_DOMAIN`) **audience** (`string`): Identifiant/audience de votre API Auth0. Il garantit que les tokens sont destinés à votre API précise. (Default: `process.env.AUTH0_AUDIENCE`) **name** (`string`): Nom personnalisé de l’instance du fournisseur d’authentification. (Default: `"auth0"`) **authorizeUser** (`(user: Auth0User) => Promise | boolean`): Fonction d’autorisation personnalisée qui détermine si l’accès doit être accordé à un utilisateur. Appelée après la vérification du token. Par défaut, elle autorise tous les utilisateurs authentifiés qui disposent de tokens valides. ## Variables d’environnement Les variables d’environnement suivantes sont utilisées automatiquement lorsque les options du constructeur ne sont pas fournies : **AUTH0\_DOMAIN** (`string`): Votre domaine Auth0. Il se trouve dans le tableau de bord Auth0, sous Applications > Settings. **AUTH0\_AUDIENCE** (`string`): Identifiant de votre API Auth0. Il s’agit de l’identifiant défini lors de la création d’une API dans votre tableau de bord Auth0. ## Comportement d’autorisation par défaut Par défaut, `MastraAuthAuth0` valide les tokens JWT Auth0 et accorde l’accès à tous les utilisateurs authentifiés : 1. **Vérification du token :** le token JWT est vérifié au moyen des clés publiques d’Auth0 (JWKS). 2. **Validation de la signature :** garantit que le token a été signé par votre tenant Auth0. 3. **Contrôle de l’expiration :** vérifie que le token n’a pas expiré. 4. **Validation de l’audience :** confirme que le token a été émis pour votre API précise (audience). 5. **Validation de l’émetteur :** garantit que le token a été émis par votre domaine Auth0. Si toutes les validations réussissent, l’utilisateur est considéré comme autorisé. Pour implémenter une logique d’autorisation personnalisée, telle qu’un contrôle d’accès fondé sur les rôles, fournissez une fonction `authorizeUser` personnalisée. ## Type d’utilisateur Auth0 Le type `Auth0User` utilisé dans la fonction `authorizeUser` correspond à la charge utile décodée du token JWT, qui comprend généralement : - `sub` : identifiant unique de l’utilisateur (sujet) - `email` : adresse e-mail de l’utilisateur (si elle figure dans le token) - `email_verified` : indique si l’adresse e-mail est vérifiée - `name` : nom d’affichage de l’utilisateur (s’il est disponible) - `picture` : URL de la photo de profil de l’utilisateur (si elle est disponible) - `iss` : émetteur du token (votre domaine Auth0) - `aud` : audience du token (identifiant de votre API) - `iat` : horodatage d’émission du token - `exp` : horodatage d’expiration du token - `scope` : portées accordées au token - Claims personnalisés et métadonnées d’application configurés dans votre tenant Auth0 Les propriétés disponibles dépendent précisément de votre configuration Auth0, des portées demandées et des claims personnalisés que vous avez configurés. ## Voir aussi [Classe MastraAuthAuth0](https://mastra.zisheng.pro/fr/docs/server/auth/auth0)