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’utilisationLien direct vers Exemple d’utilisation
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,
}),
},
})
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 constructeurLien direct vers Paramètres du constructeur
domain?:
audience?:
name?:
Variables d’environnementLien direct vers Variables d’environnement
Les variables d’environnement suivantes sont utilisées automatiquement lorsque les options du constructeur ne sont pas fournies :
AUTH0_DOMAIN?:
AUTH0_AUDIENCE?:
Comportement d’autorisation par défautLien direct vers 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 :
- Vérification du token : le token JWT est vérifié au moyen des clés publiques d’Auth0 (JWKS).
- Validation de la signature : garantit que le token a été signé par votre tenant Auth0.
- Contrôle de l’expiration : vérifie que le token n’a pas expiré.
- Validation de l’audience : confirme que le token a été émis pour votre API précise (audience).
- 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 Auth0Lien direct vers 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éename: 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 tokenexp: horodatage d’expiration du tokenscope: 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.