> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Supabase `@mastra/auth-supabase` パッケージは、Supabase Auth を使用した Mastra の認証を提供します。Supabase の認証システムを使って受信リクエストを検証し、`auth` オプションで Mastra サーバーと統合します。 ## 前提条件 この例では Supabase Auth を使用します。Supabase の認証情報を `.env` ファイルに追加し、Supabase プロジェクトが適切に設定されていることを確認してください。 ```env SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your-anon-key ``` > **注記:** 適切なデータアクセス制御を確保するため、Supabase の Row Level Security(RLS)設定を確認してください。 ## インストール `MastraAuthSupabase` クラスを使用するには、事前に `@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 ``` ## 使用例 ```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, }), }, }) ``` > **情報:** デフォルトの `authorizeUser` メソッドは、`public` スキーマの `users` テーブルにある `isAdmin` 列を確認します。ユーザー認可をカスタマイズするには、Provider の構築時にカスタムの `authorizeUser` 関数を指定します。 > > 利用可能なすべての設定オプションについては、[MastraAuthSupabase](https://mastra.zisheng.pro/ja/reference/auth/supabase) を参照してください。 ## クライアント側の設定 Supabase 認証を使用する場合は、クライアント側で Supabase からアクセストークンを取得し、Mastra へのリクエストに渡す必要があります。 ### アクセストークンの取得 Supabase クライアントを使ってユーザーを認証し、アクセストークンを取得します。 ```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 ``` > **注記:** OAuth やマジックリンクなど、その他の認証方法については、[Supabase ドキュメント](https://supabase.com/docs/guides/auth)を参照してください。 ## `MastraClient` の設定 `auth` を有効にすると、`MastraClient` から送信するすべてのリクエストで、`Authorization` ヘッダーに有効な Supabase アクセストークンを含める必要があります。 ```typescript import { MastraClient } from '@mastra/client-js' export const mastraClient = new MastraClient({ baseUrl: 'https://', headers: { Authorization: `Bearer ${accessToken}`, }, }) ``` > **情報:** Authorization ヘッダーでは、アクセストークンに `Bearer` プレフィックスを付ける必要があります。 > > その他の設定オプションについては、[Mastra Client SDK](https://mastra.zisheng.pro/ja/docs/server/mastra-client) を参照してください。 ### 認証済みリクエストの送信 Supabase アクセストークンを使って `MastraClient` を設定すると、認証済みリクエストを送信できます。 **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" }' ```