> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # MastraAuthBetterAuth クラス `MastraAuthBetterAuth` クラスは、Better Auth を使用して Mastra アプリケーションに認証機能を提供します。Better Auth の session を使用して受信リクエストを検証し、`auth` オプションを使用して Mastra server と統合します。 ## 使用例 ```typescript 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, }), }, }) ``` ## コンストラクターパラメーター **auth** (`Auth`): betterAuth({ ... }) で作成した Better Auth インスタンス。必須であり、サポートされている database Provider を使用して適切に設定する必要があります。 **name** (`string`): 認証 Provider インスタンスのカスタム名。 (Default: `'better-auth'`) **authorizeUser** (`(user: BetterAuthUser, request: HonoRequest) => Promise | boolean`): ユーザーにアクセスを許可するかどうかを判定するカスタム認可関数。session の検証後に呼び出されます。デフォルトでは、有効な session を持つすべての認証済みユーザーを許可します。 **public** (`Array`): 認証を必要としない公開ルート。完全一致のパス、ワイルドカード、パスパラメーターをサポートします。 **protected** (`Array`): 認証を必要とする保護ルート。完全一致のパス、ワイルドカード、パスパラメーターをサポートします。 ## `BetterAuthUser` 型 `BetterAuthUser` 型には、Better Auth が返す session とユーザー情報が含まれます。 ```typescript interface BetterAuthUser { session: Session user: User } ``` - `session`:session の metadata を含む Better Auth の session オブジェクト - `user`:ユーザーの詳細情報を含む認証済みユーザーオブジェクト `Session` 型と `User` 型は、Better Auth package から export されます。 ## マッチングルール - `public` と `protected` は、完全一致のパス、ワイルドカードパターン(`/api/*` など)、パスパラメーター(`/users/:id` など)を受け付けます。 - メソッド固有のルールには、`["/api/agents", ["GET", "POST"]]` のような tuple を使用します。 - ルートが `public` と `protected` の両方に一致する場合は `public` が優先され、認証は不要です。 - どちらにも一致しない場合、ルートはデフォルトで保護対象として扱われます(ルートに `requiresAuth: false` が明示的に設定されている場合を除く)。 ## 関連情報 [MastraAuthBetterAuth クラス](https://mastra.zisheng.pro/ja/docs/server/auth/better-auth)