光环标志
光环基地文档
文档›JavaScript SDK reference›Auth reference

JavaScript SDK:身份验证参考

每个身份验证和用户管理方法都有其签名。

6分钟 读取·级别 参考·修改于 2026年10月12日
该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。
#
功能

导出函数

功能描述
function isMfaChallenge(v: unknown): v is MfaChallenge判别式类型保护 LoginResponse = TokenPair | MfaChallenge。
#
班级

认证服务

方法描述
dispose(): void拆除主动生命周期:股票代码、可见性、BroadcastChannel、侦听器。
onAuthStateChange(callback: AuthStateCallback): { unsubscribe: () => void; data: { subscription: { unsubscribe: () => void; }; }; }侦听会话状态更改(SIGNED_IN、 SIGNED_OUT、 TOKEN_REFRESHED、 USER_UPDATED、 MFA_CHALLENGE...)。
signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>>使用电子邮件和密码创建一个帐户。
signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>>通过电子邮件和密码登录用户。
signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{ url: string; }>>启动 OAuth 流:始终返回 { url } (如果存在 window,则另外重定向浏览器)。
signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{ message: string; }>>通过电子邮件发送连接链接(“魔术链接”)。
signInAnonymously(): Promise<AuraResponse<TokenPair>>创建匿名会话(没有电子邮件的用户),由 SIGNED_IN记录和报告。
signOut(): Promise<AuraResponse<null>>断开连接:撤销服务器端刷新令牌(如果存在),刷新本地会话,并发出 SIGNED_OUT。
refreshSession(): Promise<AuraResponse<TokenPair>>使用刷新令牌刷新会话并发出 TOKEN_REFRESHED。
getSession(): Promise<{ data: { session: Session | null; }; error: null; accessToken: string | null; access_token: string | null; user: User | null; }>当前会话从存储中读取(实际上是同步的,没有网络调用)。
setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>>从现有访问令牌和刷新令牌(例如从服务器接收)安装会话。
exchangeCodeForSession(authCode: string, codeVerifier?: string): Promise<AuraResponse<LoginResponse>>交换会话的 PKCE 授权代码。
listSessions(): Promise<AuraResponse<SessionInfo[]>>列出登录用户的会话(设备、IP 地址、日期); is_current 定位当前会话。
revokeSession(sessionId: string): Promise<AuraResponse<null>>撤销通过其标识符连接的用户的会话。
revokeAllSessions(): Promise<AuraResponse<{ message: string; }>>在各处注销用户:撤销所有会话、刷新本地会话并发出 SIGNED_OUT。
getUser(jwt?: string): Promise<AuraResponse<User>>在服务器端检索经过验证的用户。
getClaims(jwt?: string, options?: { allowExpired?: boolean; issuer?: string; audience?: string; }): Promise<AuraResponse<GetClaimsResult>>验证并解码 JWT的声明。
deleteUser(password: string): Promise<AuraResponse<null>>确认密码后删除已连接用户的帐户,然后清除本地会话。
updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>>更新登录用户(元数据、密码等)并发出 USER_UPDATED。
resetPasswordForEmail(req: PasswordResetRequest): Promise<AuraResponse<{ message: string; }>>发送密码重置电子邮件。
updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>>更改登录用户的密码。
mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>>MFA:开始 TOTP 注册并返回 secret 和 URL otpauth_url 以显示为 QR 代码。
mfaVerifySetup(code: string): Promise<AuraResponse<{ recovery_codes: string[]; }>>MFA:使用第一个代码确认注册并返回恢复代码。
mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>>MFA:终止返回质询的连接(mfa_token 和 TOTP 代码)。
mfaUnenroll(password: string): Promise<AuraResponse<{ message: string; }>>MFA:确认密码后停用 MFA。
verifyOtp(params: VerifyEmailChangeOtpParams): Promise<AuraResponse<User>>
verifyOtp(params: Exclude<VerifyOtpParams, VerifyEmailChangeOtpParams>): Promise<AuraResponse<TokenPair>>
OTP 验证的单个入口点(@supabase/auth-js的奇偶校验 verifyOtp )。
resendVerificationEmail(email?: string): Promise<AuraResponse<{ message: string; }>>将验证电子邮件重新发送至 email 或登录用户的地址。
signInWithEmailOtp(email: string): Promise<AuraResponse<{ message: string; }>>通过电子邮件发送一次性使用代码;由 verifyOtp({ type: 'email' })确认。
signInWithSmsOtp(phone: string): Promise<AuraResponse<{ message: string; }>>通过短信发送一次性代码;由 verifyOtp({ type: 'sms' })确认。
listIdentities(): Promise<AuraResponse<IdentityInfo[]>>列出与登录用户关联的身份(提供者)。
linkIdentity(provider: string): Promise<AuraResponse<{ url: string; provider: string; }>>开始将提供程序 OAuth 绑定到连接的帐户并返回要打开的授权 URL。
unlinkIdentity(identityId: string): Promise<AuraResponse<{ message: string; }>>从通过其标识符连接的帐户中分离身份。
regenerateRecoveryCodes(code: string): Promise<AuraResponse<{ recovery_codes: string[]; }>>MFA:使用 TOTP 代码确认后重新生成恢复代码。
signInWithIdToken(provider: string, idToken: string, accessToken?: string): Promise<AuraResponse<LoginResponse>>交换会话的提供商令牌 ID(Google/Apple、本机移动设备)。
getSettings(): Promise<AuraResponse<{ disable_signup: boolean; external: Record<string, boolean>; mailer_autoconfirm: boolean; mfa_enabled: boolean; }>>GoTrue 奇偶校验:GET /settings — 公共项目配置(无需身份验证)。
getAnonKey(): Promise<AuraResponse<{ anon_key: string; }>>项目的可发布密钥(匿名密钥)- GET /anon-key(公共,如 Supabase 模型)。
resetPassword(token: string, newPassword: string): Promise<AuraResponse<TokenPair>>使用密码恢复令牌并应用新密码。
promoteAnonymous(credentials: { email: string; password: string; }): Promise<AuraResponse<TokenPair>>将当前匿名用户(需要JWT)转换为常规电子邮件+密码帐户。
verifyMagicLink(token: string): Promise<AuraResponse<TokenPair>>消耗 magic link 令牌并返回 TokenPair。
#
班级

认证管理服务

方法描述
listUsers(params?: { limit?: number; offset?: number; search?: string; }): Promise<AuraResponse<AdminUser[]>>列出项目用户,具有搜索 (search) 和分页 (limit、 offset)。
getUser(userId: string): Promise<AuraResponse<AdminUser>>通过 ID 读取用户。
createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>>创建用户而无需通过公共注册(电子邮件、密码、元数据、角色)。
updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>>更新用户:仅提供的字段发生变化。
deleteUser(userId: string): Promise<AuraResponse<null>>删除一个用户。
banUser(userId: string): Promise<AuraResponse<null>>禁止用户:他无法再登录。
unbanUser(userId: string): Promise<AuraResponse<null>>解除用户的禁令。
generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>>为用户生成一次性链接('magic'、 'recovery'或 'invite')并返回 { link, token }。
getUserStats(): Promise<AuraResponse<UserStats>>用户统计数据:总计、已验证、已禁止、带有 MFA 以及 7 天以上的新用户。
listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>>列出链接到用户的身份(OAuth 提供商、电子邮件)。
listSessions(params?: { userId?: string; limit?: number; offset?: number; }): Promise<AuraResponse<AdminSessionInfo[]>>列出所有用户的活动会话,可按 userId进行过滤,并分页。
revokeSession(sessionId: string): Promise<AuraResponse<null>>通过标识符撤销会话。
getAuditLog(params?: { userId?: string; limit?: number; offset?: number; }): Promise<AuraResponse<AuditLogEntry[]>>读取审核日志(操作、IP 地址、用户代理、日期),可通过 userId进行过滤,并进行分页。
getSettings(): Promise<AuraResponse<AuthSettings>>读取项目的身份验证设置。
updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>>更新项目的身份验证设置(部分合并:仅写入提供的字段,COALESCE 在后端)。
listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>>列出项目身份验证电子邮件模板。
getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>>读取给定类型的电子邮件模板(例如确认、恢复)。
updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>>替换给定类型的电子邮件模板内容。
deleteEmailTemplate(type: string): Promise<AuraResponse<{ message: string; }>>从电子邮件类型中删除自定义模板。
testEmailTemplate(type: string, body: { to_email: string; }): Promise<AuraResponse<null>>将带有类型模板的测试电子邮件发送到地址 to_email。
生成的页面

该页面是根据 SDK 的类型声明和注释生成的,因此它不会偏离已发布的代码。有关工作示例,请阅读指南。

最后更新· 2026年10月12日