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'utilisationLien 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 constructeurLien 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.
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 BetterAuthUserLien 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 sessionuser: objet de l'utilisateur authentifié contenant ses informations
Les types Session et User sont exportés par le package Better Auth.
Règles de correspondanceLien direct vers Règles de correspondance
publicetprotectedacceptent 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 à
publicet àprotected,publicest 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.