MastraAuthFirebase 类
MastraAuthFirebase 类使用 Firebase Authentication 为 Mastra 提供身份验证。它通过 Firebase ID token 验证传入请求,并使用 auth 选项与 Mastra server 集成。
使用示例使用示例的直接链接
使用环境变量的基本用法使用环境变量的基本用法的直接链接
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthFirebase } from '@mastra/auth-firebase'
// Automatically uses FIREBASE_SERVICE_ACCOUNT and FIRESTORE_DATABASE_ID env vars
export const mastra = new Mastra({
server: {
auth: new MastraAuthFirebase(),
},
})
自定义配置自定义配置的直接链接
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthFirebase } from '@mastra/auth-firebase'
export const mastra = new Mastra({
server: {
auth: new MastraAuthFirebase({
serviceAccount: '/path/to/service-account-key.json',
databaseId: 'your-database-id',
}),
},
})
构造函数参数构造函数参数的直接链接
serviceAccount?:
string
= process.env.FIREBASE_SERVICE_ACCOUNT
Firebase 服务账号 JSON 文件的路径。该文件包含在服务端验证 Firebase ID token 所需的凭据。
databaseId?:
string
= process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID
要使用的 Firestore 数据库 ID。默认数据库通常为 '(default)'。
name?:
string
= "firebase"
身份验证 Provider 实例的自定义名称。
环境变量环境变量的直接链接
未提供构造函数选项时,会自动使用以下环境变量:
FIREBASE_SERVICE_ACCOUNT?:
string
Firebase 服务账号 JSON 文件的路径。未提供 serviceAccount 选项时使用。
FIRESTORE_DATABASE_ID?:
string
Firestore 数据库 ID。数据库配置的主要环境变量。
FIREBASE_DATABASE_ID?:
string
Firestore 数据库 ID 的备用环境变量。未设置 FIRESTORE_DATABASE_ID 时使用。
默认授权行为默认授权行为的直接链接
默认情况下,MastraAuthFirebase 使用 Firestore 管理用户访问权限:
- 成功验证 Firebase ID token 后,调用
authorizeUser方法 - 检查
user_accesscollection 中是否存在以用户 UID 作为文档 ID 的文档 - 如果文档存在,则用户获得授权;否则拒绝访问
- 使用的 Firestore 数据库由
databaseId参数或环境变量决定
Firebase 用户类型Firebase 用户类型的直接链接
authorizeUser 函数使用的 FirebaseUser 类型对应 Firebase 的 DecodedIdToken interface,其中包括:
uid:用户的唯一标识符email:用户的电子邮件地址(如果可用)email_verified:电子邮件是否已验证name:用户的显示名称(如果可用)picture:用户头像的 URL(如果可用)auth_time:用户通过身份验证的时间- 其他标准 JWT claim