MastraAuthAuth0 類別
MastraAuthAuth0 類別使用 Auth0 為 Mastra 提供身分驗證。它會使用 Auth0 核發的 JWT token 驗證傳入要求,並透過 auth 選項與 Mastra 伺服器整合。
使用範例「使用範例」的直接連結
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 網域(例如 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 網域。可在 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 網域核發
如果所有驗證都通過,使用者即視為已獲授權。若要實作自訂授權邏輯(例如角色型存取控制),請提供自訂的 authorizeUser 函式。
Auth0 使用者型別「Auth0 使用者型別」的直接連結
authorizeUser 函式所使用的 Auth0User 型別對應至解碼後的 JWT token payload,通常包含:
sub:使用者的唯一識別碼(subject)email:使用者的電子郵件地址(若 token 中有提供)email_verified:電子郵件是否已驗證name:使用者的顯示名稱(若有)picture:使用者個人資料圖片的 URL(若有)iss:Token issuer(你的 Auth0 網域)aud:Token audience(你的 API 識別碼)iat:Token 核發時間戳記exp:Token 到期時間戳記scope:授予 token 的 scope- 在 Auth0 tenant 中設定的自訂 claim 與應用程式中繼資料
實際可用的屬性取決於你的 Auth0 設定、要求的 scope,以及你所設定的任何自訂 claim。