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日