Aller au contenu principal

JSON Web Token

La classe MastraJwtAuth fournit à Mastra un mécanisme d’authentification léger fondé sur les JSON Web Tokens (JWT). Elle vérifie les requêtes entrantes à l’aide d’un secret partagé et s’intègre au serveur Mastra via l’option auth.

Installation
Lien direct vers Installation

Avant d’utiliser la classe MastraJwtAuth, vous devez installer le package @mastra/auth.

npm install @mastra/auth@latest

Créer un JWT
Lien direct vers Créer un JWT

Pour authentifier les requêtes envoyées à votre serveur Mastra, vous avez besoin d’un JSON Web Token (JWT) valide signé avec votre MASTRA_JWT_SECRET.

Le moyen le plus simple d’en générer un consiste à utiliser jwt.io :

  1. Sélectionnez JWT Encoder.
  2. Faites défiler la page jusqu’à la section Sign JWT: Secret.
  3. Saisissez votre secret (par exemple : supersecretdevkeythatishs256safe!).
  4. Cliquez sur Generate example pour créer un JWT valide.
  5. Copiez le jeton généré et définissez-le comme MASTRA_JWT_TOKEN dans votre fichier .env.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

Utilisez le JWT généré pour configurer MastraJwtAuth dans votre serveur Mastra :

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraJwtAuth } from '@mastra/auth'

export const mastra = new Mastra({
server: {
auth: new MastraJwtAuth({
secret: process.env.MASTRA_JWT_SECRET,
}),
},
})

Consultez la référence de MastraJwtAuth pour découvrir toutes les options de configuration disponibles.

Dans Studio, ouvrez Settings, puis sélectionnez le bouton « Add Header » sous Headers. Saisissez Authorization comme nom d’en-tête et Bearer <your-jwt> comme valeur.

Configurer MastraClient
Lien direct vers configuring-mastraclient

Lorsque auth est activé, toutes les requêtes effectuées avec MastraClient doivent inclure un JWT valide dans l’en-tête Authorization :

lib/mastra/mastra-client.ts
import { MastraClient } from '@mastra/client-js'

export const mastraClient = new MastraClient({
baseUrl: 'https://<mastra-api-url>',
headers: {
Authorization: `Bearer ${process.env.MASTRA_JWT_TOKEN}`,
},
})

Consultez le SDK client Mastra pour davantage d’options de configuration.

Effectuer des requêtes authentifiées
Lien direct vers Effectuer des requêtes authentifiées

Une fois MastraClient configuré, vous pouvez envoyer des requêtes authentifiées depuis votre application frontend ou utiliser curl pour effectuer rapidement des tests locaux :

src/components/test-agent.tsx
import { mastraClient } from '../../lib/mastra-client'

export const TestAgent = () => {
async function handleClick() {
const agent = mastraClient.getAgent('weatherAgent')

const response = await agent.generate('Weather in London')

console.log(response)
}

return <button onClick={handleClick}>Test Agent</button>
}