メインコンテンツへ移動

MastraAuthBetterAuth クラス

MastraAuthBetterAuth クラスは、Better Auth を使用して Mastra アプリケーションに認証機能を提供します。Better Auth の session を使用して受信リクエストを検証し、auth オプションを使用して Mastra server と統合します。

使用例
使用例への直接リンク

src/mastra/index.ts
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
= 'better-auth'
認証 Provider インスタンスのカスタム名。

authorizeUser?:

(user: BetterAuthUser, request: HonoRequest) => Promise<boolean> | boolean
ユーザーにアクセスを許可するかどうかを判定するカスタム認可関数。session の検証後に呼び出されます。デフォルトでは、有効な session を持つすべての認証済みユーザーを許可します。

public?:

Array<string | RegExp | [string, Methods | Methods[]]>
認証を必要としない公開ルート。完全一致のパス、ワイルドカード、パスパラメーターをサポートします。

protected?:

Array<string | RegExp | [string, Methods | Methods[]]>
認証を必要とする保護ルート。完全一致のパス、ワイルドカード、パスパラメーターをサポートします。

BetterAuthUser
betterauthuser-typeへの直接リンク

BetterAuthUser 型には、Better Auth が返す session とユーザー情報が含まれます。

interface BetterAuthUser {
session: Session
user: User
}
  • session:session の metadata を含む Better Auth の session オブジェクト
  • user:ユーザーの詳細情報を含む認証済みユーザーオブジェクト

Session 型と User 型は、Better Auth package から export されます。

マッチングルール
マッチングルールへの直接リンク

  • publicprotected は、完全一致のパス、ワイルドカードパターン(/api/* など)、パスパラメーター(/users/:id など)を受け付けます。
  • メソッド固有のルールには、["/api/agents", ["GET", "POST"]] のような tuple を使用します。
  • ルートが publicprotected の両方に一致する場合は public が優先され、認証は不要です。
  • どちらにも一致しない場合、ルートはデフォルトで保護対象として扱われます(ルートに requiresAuth: false が明示的に設定されている場合を除く)。

MastraAuthBetterAuth クラス