MastraAuthAuth0 类
MastraAuthAuth0 类使用 Auth0 为 Mastra 提供身份验证。它通过 Auth0 签发的 JWT token 验证传入请求,并使用 auth 选项与 Mastra server 集成。
使用示例使用示例的直接链接
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthAuth0 } from '@mastra/auth-auth0'
export const mastra = new Mastra({
server: {
auth: new MastraAuthAuth0({
domain: process.env.AUTH0_DOMAIN,
audience: process.env.AUTH0_AUDIENCE,
}),
},
})
备注
如果已设置所需的环境变量(AUTH0_DOMAIN 和 AUTH0_AUDIENCE),可以省略构造函数参数。在这种情况下,请使用不带任何参数的 new MastraAuthAuth0()。
构造函数参数构造函数参数的直接链接
domain?:
string
= process.env.AUTH0_DOMAIN
你的 Auth0 domain(例如 your-tenant.auth0.com),用于验证 Auth0 tenant 签发的 JWT token。
audience?:
string
= process.env.AUTH0_AUDIENCE
你的 Auth0 API 标识符/audience,用于确保 token 面向你的特定 API。
name?:
string
= "auth0"
身份验证 Provider 实例的自定义名称。
环境变量环境变量的直接链接
未提供构造函数选项时,会自动使用以下环境变量:
AUTH0_DOMAIN?:
string
你的 Auth0 domain,可在 Auth0 Dashboard 的 Applications > Settings 下找到。
AUTH0_AUDIENCE?:
string
你的 Auth0 API 标识符,即在 Auth0 Dashboard 中创建 API 时设置的标识符。
默认授权行为默认授权行为的直接链接
默认情况下,MastraAuthAuth0 会验证 Auth0 JWT token,并允许所有已通过身份验证的用户访问:
- Token 验证:使用 Auth0 的公钥(JWKS)验证 JWT token
- 签名验证:确保 token 由你的 Auth0 tenant 签名
- 过期检查:验证 token 尚未过期
- Audience 验证:确认 token 是为你的特定 API(audience)签发的
- Issuer 验证:确保 token 由你的 Auth0 domain 签发
如果所有验证均通过,则视为用户已获授权。如需实现自定义授权逻辑(例如基于角色的访问控制),请提供自定义 authorizeUser 函数。
Auth0 用户类型Auth0 用户类型的直接链接
authorizeUser 函数使用的 Auth0User 类型对应解码后的 JWT token payload,通常包括:
sub:用户的唯一标识符(subject)email:用户的电子邮件地址(如果 token 中包含)email_verified:电子邮件是否已验证name:用户的显示名称(如果可用)picture:用户头像的 URL(如果可用)iss:Token issuer(你的 Auth0 domain)aud:Token audience(你的 API 标识符)iat:Token 签发时间戳exp:Token 过期时间戳scope:授予 token 的 scope- 在 Auth0 tenant 中配置的自定义 claim 和应用 metadata
具体可用属性取决于 Auth0 配置、请求的 scope 以及配置的任何自定义 claim。