> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Supabase Le package `@mastra/auth-supabase` fournit à Mastra une authentification fondée sur Supabase Auth. Il vérifie les requêtes entrantes au moyen du système d’authentification de Supabase et s’intègre au serveur Mastra via l’option `auth`. ## Prérequis Cet exemple utilise Supabase Auth. Ajoutez vos identifiants Supabase à votre fichier `.env` et vérifiez que votre projet Supabase est correctement configuré. ```env SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your-anon-key ``` > **Remarque:** Vérifiez les paramètres Row Level Security (RLS) de Supabase afin de garantir des contrôles d’accès aux données appropriés. ## Installation Avant d’utiliser la classe `MastraAuthSupabase`, vous devez installer le package `@mastra/auth-supabase`. **npm**: ```bash npm install @mastra/auth-supabase@latest ``` **pnpm**: ```bash pnpm add @mastra/auth-supabase@latest ``` **Yarn**: ```bash yarn add @mastra/auth-supabase@latest ``` **Bun**: ```bash bun add @mastra/auth-supabase@latest ``` ## Exemple d’utilisation ```typescript import { Mastra } from '@mastra/core' import { MastraAuthSupabase } from '@mastra/auth-supabase' export const mastra = new Mastra({ server: { auth: new MastraAuthSupabase({ url: process.env.SUPABASE_URL, anonKey: process.env.SUPABASE_ANON_KEY, }), }, }) ``` > **Info:** La méthode `authorizeUser` par défaut vérifie la colonne `isAdmin` de la table `users` dans le schéma `public`. Pour personnaliser l’autorisation des utilisateurs, fournissez une fonction `authorizeUser` personnalisée lors de la création du Provider. > > Consultez la [référence de MastraAuthSupabase](https://mastra.zisheng.pro/fr/reference/auth/supabase) pour découvrir toutes les options de configuration disponibles. ## Configuration côté client Lorsque vous utilisez l’authentification Supabase, récupérez le jeton d’accès Supabase côté client et transmettez-le à vos requêtes Mastra. ### Récupérer le jeton d’accès Utilisez le client Supabase pour authentifier les utilisateurs et récupérer leur jeton d’accès : ```typescript import { createClient } from '@supabase/supabase-js' const supabase = createClient('', '') const authTokenResponse = await supabase.auth.signInWithPassword({ email: "", password: "", }) const accessToken = authTokenResponse.data?.session?.access_token ``` > **Remarque:** Consultez la [documentation Supabase](https://supabase.com/docs/guides/auth) pour découvrir d’autres méthodes d’authentification, telles qu’OAuth et les liens magiques. ## Configurer `MastraClient` Lorsque `auth` est activé, toutes les requêtes effectuées avec `MastraClient` doivent inclure un jeton d’accès Supabase valide dans l’en-tête `Authorization` : ```typescript import { MastraClient } from '@mastra/client-js' export const mastraClient = new MastraClient({ baseUrl: 'https://', headers: { Authorization: `Bearer ${accessToken}`, }, }) ``` > **Info:** Le jeton d’accès doit être précédé de `Bearer` dans l’en-tête Authorization. > > Consultez le [SDK client Mastra](https://mastra.zisheng.pro/fr/docs/server/mastra-client) pour davantage d’options de configuration. ### Effectuer des requêtes authentifiées Une fois `MastraClient` configuré avec le jeton d’accès Supabase, vous pouvez envoyer des requêtes authentifiées : **React**: ```tsx import { mastraClient } from '../../lib/mastra-client' export const TestAgent = () => { async function handleClick() { const agent = mastraClient.getAgent('weatherAgent') const response = await agent.generate("What's the weather like in New York") console.log(response) } return } ``` **cURL**: ```bash curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ -d '{ "messages": "Weather in London" }' ```