Aller au contenu principal

Classe MastraAuthBetterAuth

La classe MastraAuthBetterAuth fournit l'authentification des applications Mastra au moyen de Better Auth. Elle vérifie les requêtes entrantes à partir des sessions Better Auth et s'intègre au serveur Mastra via l'option auth.

Exemple d'utilisation
Lien direct vers Exemple d'utilisation

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthBetterAuth } from '@mastra/auth-better-auth'
import { betterAuth } from 'better-auth'

// Create your Better Auth instance
const auth = betterAuth({
database: {
provider: 'postgresql',
url: process.env.DATABASE_URL,
},
emailAndPassword: {
enabled: true,
},
baseURL: process.env.BETTER_AUTH_URL,
secret: process.env.BETTER_AUTH_SECRET,
})

export const mastra = new Mastra({
server: {
auth: new MastraAuthBetterAuth({
auth,
}),
},
})

Paramètres du constructeur
Lien direct vers Paramètres du constructeur

auth:

Auth
Votre instance Better Auth créée avec betterAuth({ ... }). Elle est obligatoire et doit être correctement configurée avec un fournisseur de base de données pris en charge.

name?:

string
= 'better-auth'
Nom personnalisé de l'instance du fournisseur d'authentification.

authorizeUser?:

(user: BetterAuthUser, request: HonoRequest) => Promise<boolean> | boolean
Fonction d'autorisation personnalisée qui détermine si un utilisateur doit obtenir l'accès. Elle est appelée après la vérification de la session. Par défaut, elle autorise tous les utilisateurs authentifiés disposant d'une session valide.

public?:

Array<string | RegExp | [string, Methods | Methods[]]>
Routes publiques qui ne nécessitent pas d'authentification. Prend en charge les chemins exacts, les jokers et les paramètres de chemin.

protected?:

Array<string | RegExp | [string, Methods | Methods[]]>
Routes protégées qui nécessitent une authentification. Prend en charge les chemins exacts, les jokers et les paramètres de chemin.

Type BetterAuthUser
Lien direct vers betterauthuser-type

Le type BetterAuthUser contient les informations de session et d'utilisateur renvoyées par Better Auth :

interface BetterAuthUser {
session: Session
user: User
}
  • session : objet de session Better Auth contenant les métadonnées de la session
  • user : objet de l'utilisateur authentifié contenant ses informations

Les types Session et User sont exportés par le package Better Auth.

Règles de correspondance
Lien direct vers Règles de correspondance

  • public et protected acceptent les chemins exacts, les motifs avec joker comme /api/* et les paramètres de chemin comme /users/:id.
  • Pour les règles propres à une méthode, utilisez des tuples tels que ["/api/agents", ["GET", "POST"]].
  • Si une route correspond à la fois à public et à protected, public est prioritaire et aucune authentification n'est requise.
  • Si aucune règle ne correspond, les routes sont considérées comme protégées par défaut, sauf si une route est explicitement marquée requiresAuth: false.

Classe MastraAuthBetterAuth