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