> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # MastraAuthAuth0 类 `MastraAuthAuth0` 类使用 Auth0 为 Mastra 提供身份验证。它通过 Auth0 签发的 JWT token 验证传入请求,并使用 `auth` 选项与 Mastra server 集成。 ## 使用示例 ```typescript 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`): 你的 Auth0 domain(例如 your-tenant.auth0.com),用于验证 Auth0 tenant 签发的 JWT token。 (Default: `process.env.AUTH0_DOMAIN`) **audience** (`string`): 你的 Auth0 API 标识符/audience,用于确保 token 面向你的特定 API。 (Default: `process.env.AUTH0_AUDIENCE`) **name** (`string`): 身份验证 Provider 实例的自定义名称。 (Default: `"auth0"`) **authorizeUser** (`(user: Auth0User) => Promise | boolean`): 用于确定是否应授予用户访问权限的自定义授权函数。在 token 验证后调用。默认允许所有具有有效 token 的已验证用户。 ## 环境变量 未提供构造函数选项时,会自动使用以下环境变量: **AUTH0\_DOMAIN** (`string`): 你的 Auth0 domain,可在 Auth0 Dashboard 的 Applications > Settings 下找到。 **AUTH0\_AUDIENCE** (`string`): 你的 Auth0 API 标识符,即在 Auth0 Dashboard 中创建 API 时设置的标识符。 ## 默认授权行为 默认情况下,`MastraAuthAuth0` 会验证 Auth0 JWT token,并允许所有已通过身份验证的用户访问: 1. **Token 验证**:使用 Auth0 的公钥(JWKS)验证 JWT token 2. **签名验证**:确保 token 由你的 Auth0 tenant 签名 3. **过期检查**:验证 token 尚未过期 4. **Audience 验证**:确认 token 是为你的特定 API(audience)签发的 5. **Issuer 验证**:确保 token 由你的 Auth0 domain 签发 如果所有验证均通过,则视为用户已获授权。如需实现自定义授权逻辑(例如基于角色的访问控制),请提供自定义 `authorizeUser` 函数。 ## 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。 ## 相关内容 [MastraAuthAuth0 类](https://mastra.zisheng.pro/docs/server/auth/auth0)