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.
InstallationLien direct vers Installation
Avant d’utiliser la classe MastraJwtAuth, vous devez installer le package @mastra/auth.
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/auth@latest
pnpm add @mastra/auth@latest
yarn add @mastra/auth@latest
bun add @mastra/auth@latest
Créer un JWTLien 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 :
- Sélectionnez JWT Encoder.
- Faites défiler la page jusqu’à la section Sign JWT: Secret.
- Saisissez votre secret (par exemple :
supersecretdevkeythatishs256safe!). - Cliquez sur Generate example pour créer un JWT valide.
- Copiez le jeton généré et définissez-le comme
MASTRA_JWT_TOKENdans votre fichier.env.
Exemple d’utilisationLien direct vers Exemple d’utilisation
Utilisez le JWT généré pour configurer MastraJwtAuth dans votre serveur Mastra :
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 MastraClientLien 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 :
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éesLien 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 :
- React
- cURL
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>
}
curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-jwt>" \
-d '{
"messages": "Weather in London"
}'