BaseAuth class

AuthTenantAwareAuth API 的通用父接口。

签名

export declare abstract class BaseAuth 

方法

方法 修饰符 说明
createCustomToken(uid, developerClaims) 创建一个新的 Firebase 自定义令牌 (JWT),该令牌可以发送回客户端设备,以便通过客户端 SDK 的 signInWithCustomToken() 方法进行登录。(租户感知型实例也会在令牌中嵌入租户 ID。)如需代码示例和详细文档,请参阅创建自定义令牌
createProviderConfig(config) 返回一个 promise,并在创建新的提供方配置后使用新创建的 AuthProviderConfig 进行解析。SAML 和 OIDC 提供方支持需要 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档
createSessionCookie(idToken, sessionCookieOptions) 使用指定选项创建新的 Firebase 会话 Cookie。您可以将创建的 JWT 字符串设置为采用自定义 Cookie 政策的服务器端会话 Cookie,并用于会话管理。会话 Cookie JWT 将具有与所提供的 ID 令牌相同的载荷声明。如需代码示例和详细文档,请参阅管理会话 Cookie
createUser(properties) 创建一个新的用户。如需查看代码示例和详细文档,请参阅创建用户
deleteProviderConfig(providerId) 删除与传递的提供方 ID 对应的提供方配置。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。SAML 和 OIDC 提供方支持需要 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档
deleteUser(uid) 删除现有用户。如需查看代码示例和详细文档,请参阅删除用户
deleteUsers(uid) 删除通过指定 uid 指定的用户。删除不存在的用户不会产生错误(即此方法具有幂等性)。系统会将不存在的用户视为已成功删除用户,因此会将其计入 DeleteUsersResult.successCount 值。最多只能提供 1000 个标识符。如果提供的标识符超过 1, 000 个,此方法会抛出 FirebaseAuthError。目前,此 API 在服务器上的速率限制为 1 QPS。如果超出配额,您可能会收到“超出配额”错误。因此,如果您要删除超过 1,000 位用户,则需要添加延迟,以确保不超出此限制。
generateEmailVerificationLink(email, actionCodeSettings) 生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。
generatePasswordResetLink(email, actionCodeSettings) 生成用于重置用户密码的带外电子邮件操作链接。系统会为具有指定电子邮件地址的用户生成链接。可选的 ActionCodeSettings 对象定义了链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。
generateSignInWithEmailLink(email, actionCodeSettings) 生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。
generateVerifyAndChangeEmailLink(email, newEmail, actionCodeSettings) 生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。
getProviderConfig(providerId) 根据提供的 ID 查找身份验证提供方配置。返回一个使用与指定提供方 ID 对应的提供方配置进行解析的 promise。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。SAML 和 OIDC 提供方支持需要 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档
getUser(uid) 获取与指定 uid 对应的用户的用户数据。如需查看代码示例和详细文档,请参阅检索用户数据
getUserByEmail(email) 获取与指定电子邮件对应的用户的用户数据。如需代码示例和详细文档,请参阅检索用户数据
getUserByPhoneNumber(phoneNumber) 获取与指定电话号码对应的用户的用户数据。电话号码必须符合 E.164 规范。如需查看代码示例和详细文档,请参阅检索用户数据
getUserByProviderUid(providerId, uid) 获取与指定提供方 ID 对应的用户的用户数据。如需查看代码示例和详细文档,请参阅检索用户数据
getUsers(identifiers) 获取与指定标识符对应的用户数据。不保证排序,特别是不保证结果列表中的第 n 个条目与输入参数列表中的第 n 个条目相对应。最多只能提供 100 个标识符。如果提供的标识符超过 100 个,此方法将抛出 FirebaseAuthError。
importUsers(users, options) 将提供的用户列表导入 Firebase Auth。一次最多可以导入 1000 位用户。导入带密码的用户时,必须指定 UserImportOptions。此操作针对批量导入进行了优化,并且会忽略对 uidemail 和其他标识符唯一性的检查,而这可能导致重复。
listProviderConfigs(options) 返回与提供的过滤条件匹配的现有提供程序配置的列表。一次最多可以列出 100 项提供方配置。要支持 SAML 和 OIDC 提供方,您需要使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档
listUsers(maxResults, pageToken) pageToken 指定的偏移量开始,检索大小为 maxResults 的用户列表(仅限单个批次)。此方法用于批量检索指定项目的所有用户。如需查看代码示例和详细文档,请参阅列出所有用户
revokeRefreshTokens(uid) 撤消现有用户的所有刷新令牌。此 API 会将用户的 UserRecord.tokensValidAfterTime 更新为当前世界协调时间 (UTC)。请务必正确设置调用此函数的服务器时钟并进行同步。虽然这会撤消指定用户的所有会话,并禁止生成现有会话的所有新 ID 令牌,但现有 ID 令牌在自然到期(一小时)前仍可保持有效状态。要验证 ID 令牌是否已撤消,请使用 BaseAuth.verifyIdToken(),其中 checkRevoked 已设置为 true。
setCustomUserClaims(uid, customUserClaims) 中, 针对由提供的 uid 标识的现有用户设置其他开发者声明,通常用于定义用户角色和访问权限级别。这些声明应传播到用户已登录的所有设备(令牌到期后或强制刷新令牌时),以及用户下次登录时。如果使用预留的 OIDC 声明名称(sub、iat、iss 等),系统会抛出错误。权限在经过身份验证的用户的 ID 令牌 JWT 上设置。如需查看代码示例和详细文档,请参阅定义用户角色和访问权限级别
updateProviderConfig(providerId, updatedConfig) 返回一个使用与指定提供方 ID 对应的更新后的 AuthProviderConfig 进行解析的 promise。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。SAML 和 OIDC 提供方支持需要 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档
updateUser(uid, Properties) 更新现有用户。如需代码示例和详细文档,请参阅更新用户
verifyIdToken(idToken, checkRevoked) 验证 Firebase ID 令牌 (JWT)。如果令牌有效,则使用令牌的已解码声明来履行 promise;否则,系统会拒绝 promise。如果 checkRevoked 设置为 true,则首先验证相应用户是否已停用。如果是,系统会抛出 auth/user-disabled 错误。如果否,验证与 ID 令牌对应的会话是否已撤消。如果相应用户的会话失效,系统会抛出 auth/id-token-revoked 错误。如果未指定,则不会应用检查。如需代码示例和详细文档,请参阅验证 ID 令牌
verifySessionCookie(sessionCookie, checkRevoked) 验证 Firebase 会话 Cookie。返回带有 Cookie 声明的 Promise。如果无法验证 Cookie,则拒绝 promise。如果 checkRevoked 设置为 true,首先验证相应用户是否已停用:如果是,系统会抛出 auth/user-disabled 错误。如果否,验证与会话 Cookie 对应的会话是否已撤消。如果相应用户的会话失效,系统会抛出 auth/session-cookie-revoked 错误。如果未指定,系统不会执行检查。如需代码示例和详细文档,请参阅验证会话 Cookie

BaseAuth.createCustomToken()

创建一个新的 Firebase 自定义令牌 (JWT),该令牌可以发送回客户端设备,以便通过客户端 SDK 的 signInWithCustomToken() 方法进行登录。(租户感知型实例也会将租户 ID 嵌入到令牌中)。

有关代码示例和详细文档,请参阅创建自定义令牌

签名

createCustomToken(uid: string, developerClaims?: object): Promise<string>;

参数

参数 类型 说明
uid string 要用作自定义令牌主题的 uid
developerClaim 对象 要包含在自定义令牌的载荷中的可选附加声明。

返回

Promise<string>

使用提供的 uid 和载荷的自定义令牌执行的 promise。

BaseAuth.createProviderConfig()

在创建新的提供程序配置时,返回一个使用新创建的 AuthProviderConfig 进行解析的 promise。

如要支持 SAML 和 OIDC 提供方,则必须使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档

签名

createProviderConfig(config: AuthProviderConfig): Promise<AuthProviderConfig>;

参数

参数 类型 说明
config AuthProviderConfig 要创建的提供方配置。

返回

Promise<AuthProviderConfig>

使用创建的提供程序配置进行解析的 promise。

BaseAuth.createSessionCookie()

使用指定选项创建新的 Firebase 会话 Cookie。您可以将创建的 JWT 字符串设置为采用自定义 Cookie 政策的服务器端会话 Cookie,并用于会话管理。会话 Cookie JWT 将具有与提供的 ID 令牌相同的载荷声明。

有关代码示例和详细文档,请参阅管理会话 Cookie

签名

createSessionCookie(idToken: string, sessionCookieOptions: SessionCookieOptions): Promise<string>;

参数

参数 类型 说明
idToken string 用于交换会话 Cookie 的 Firebase ID 令牌。
sessionCookieOptions SessionCookieOptions 包含自定义会话时长的会话 Cookie 选项。

返回

Promise<string>

使用创建的会话 Cookie 成功解析的 promise。

BaseAuth.createUser()

创建新用户。

如需查看代码示例和详细文档,请参阅创建用户

签名

createUser(properties: CreateRequest): Promise<UserRecord>;

参数

参数 类型 说明
properties CreateRequest 要在要创建的新用户记录上设置的属性。

返回

Promise<UserRecord>

使用与新创建的用户对应的用户数据执行的 promise。

BaseAuth.deleteProviderConfig()

删除与传递的提供方 ID 对应的提供方配置。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。

如要支持 SAML 和 OIDC 提供方,则必须使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档

签名

deleteProviderConfig(providerId: string): Promise<void>;

参数

参数 类型 说明
providerId string 与要删除的提供方配置对应的提供方 ID。

返回

Promise<void>

完成时解析的 promise。

BaseAuth.deleteUser()

删除现有用户。

请参阅删除用户,查看代码示例和详细文档。

签名

deleteUser(uid: string): Promise<void>;

参数

参数 类型 说明
uid string 与要删除的用户对应的 uid

返回

Promise<void>

删除用户后执行的空 promise。

BaseAuth.deleteUsers()

删除给定 uid 指定的用户。

删除不存在的用户不会产生错误(即该方法具有幂等性)。不存在的用户会被视为已成功删除,因此会计入 DeleteUsersResult.successCount 值。

最多只能提供 1000 个标识符。如果提供的标识符超过 1000 个,此方法将抛出 FirebaseAuthError。

目前,此 API 在服务器上的速率限制为 1 QPS。如果超出配额,您可能会收到“超出配额”错误。因此,如果您要删除超过 1,000 位用户,则需要添加延迟,以确保不超出此限制。

签名

deleteUsers(uids: string[]): Promise<DeleteUsersResult>;

参数

参数 类型 说明
UID 字符串[] 与要删除的用户对应的 uids

返回

Promise<DeleteUsersResult>

一个可解析成功/失败删除总数的 Promise,以及与失败删除操作相对应的一系列错误。

生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。

签名

generateEmailVerificationLink(email: string, actionCodeSettings?: ActionCodeSettings): Promise<string>;

参数

参数 类型 说明
电子邮件 string 要验证的电子邮件帐号。
操作代码设置 ActionCodeSettings 操作代码设置。如果指定,则状态/接续网址会设置为电子邮件验证链接中的“continueUrl”参数。如果用户已安装相关应用,则默认的电子邮件验证着陆页将使用此链接显示可返回到该应用的链接。如果未指定 actionCodeSettings,则不会将任何网址附加到操作网址。提供的状态网址必须属于开发者在控制台中列入白名单的网域。否则,系统会抛出错误。只有在开发者配置并接受 Firebase Dynamic Links 服务条款的情况下,移动应用重定向才适用。仅当 Android 软件包名称和 iOS 软件包 ID 是在同一 Firebase 身份验证项目中进行配置时,才会用到它们。

返回

Promise<string>

使用生成的链接进行解析的 promise。

示例

var actionCodeSettings = {
  url: 'https://www.example.com/cart?email=user@example.com&cartId=123',
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  dynamicLinkDomain: 'custom.page.link'
};
admin.auth()
    .generateEmailVerificationLink('user@example.com', actionCodeSettings)
    .then(function(link) {
      // The link was successfully generated.
    })
    .catch(function(error) {
      // Some error occurred, you can inspect the code: error.code
    });

生成用于重置用户密码的带外电子邮件操作链接。系统会为具有指定电子邮件地址的用户生成链接。可选的 ActionCodeSettings 对象定义了链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。

签名

generatePasswordResetLink(email: string, actionCodeSettings?: ActionCodeSettings): Promise<string>;

参数

参数 类型 说明
电子邮件 string 要重置密码的用户的电子邮件地址。
操作代码设置 ActionCodeSettings 操作代码设置。如果已指定,则状态/接续网址会设置为密码重置链接中的“continueUrl”参数。如果用户已安装相关应用,默认的重设密码着陆页将使用此链接来返回应用。如果未指定 actionCodeSettings,则不会将任何网址附加到操作网址。提供的状态网址必须属于开发者在控制台中列入白名单的网域。否则,系统会抛出错误。只有在开发者配置并接受 Firebase Dynamic Links 服务条款的情况下,移动应用重定向才适用。仅当 Android 软件包名称和 iOS 软件包 ID 是在同一 Firebase 身份验证项目中进行配置时,才会用到它们。

返回

Promise<string>

使用生成的链接进行解析的 promise。

示例

var actionCodeSettings = {
  url: 'https://www.example.com/?email=user@example.com',
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  dynamicLinkDomain: 'custom.page.link'
};
admin.auth()
    .generatePasswordResetLink('user@example.com', actionCodeSettings)
    .then(function(link) {
      // The link was successfully generated.
    })
    .catch(function(error) {
      // Some error occurred, you can inspect the code: error.code
    });

生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。

签名

generateSignInWithEmailLink(email: string, actionCodeSettings: ActionCodeSettings): Promise<string>;

参数

参数 类型 说明
电子邮件 string 要验证的电子邮件帐号。
操作代码设置 ActionCodeSettings 操作代码设置。如果指定,则状态/接续网址会设置为电子邮件验证链接中的“continueUrl”参数。如果用户已安装相关应用,则默认的电子邮件验证着陆页将使用此链接显示可返回到该应用的链接。如果未指定 actionCodeSettings,则不会将任何网址附加到操作网址。提供的状态网址必须属于开发者在控制台中列入白名单的网域。否则,系统会抛出错误。只有在开发者配置并接受 Firebase Dynamic Links 服务条款的情况下,移动应用重定向才适用。仅当 Android 软件包名称和 iOS 软件包 ID 是在同一 Firebase 身份验证项目中进行配置时,才会用到它们。

返回

Promise<string>

使用生成的链接进行解析的 promise。

示例

var actionCodeSettings = {
  url: 'https://www.example.com/cart?email=user@example.com&cartId=123',
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  dynamicLinkDomain: 'custom.page.link'
};
admin.auth()
    .generateEmailVerificationLink('user@example.com', actionCodeSettings)
    .then(function(link) {
      // The link was successfully generated.
    })
    .catch(function(error) {
      // Some error occurred, you can inspect the code: error.code
    });

生成带外电子邮件操作链接,以验证用户对指定电子邮件的所有权。作为此方法的参数提供的 ActionCodeSettings 对象可定义链接是由移动应用还是浏览器处理的,以及在深层链接中传递的其他状态信息,等等。

签名

generateVerifyAndChangeEmailLink(email: string, newEmail: string, actionCodeSettings?: ActionCodeSettings): Promise<string>;

参数

参数 类型 说明
电子邮件 string 当前电子邮件帐号。
新电子邮件 string 更新账号的电子邮件地址。
操作代码设置 ActionCodeSettings 操作代码设置。如果指定,则状态/接续网址会设置为电子邮件验证链接中的“continueUrl”参数。如果用户已安装相关应用,则默认的电子邮件验证着陆页将使用此链接显示可返回到该应用的链接。如果未指定 actionCodeSettings,则不会将任何网址附加到操作网址。提供的状态网址必须属于在控制台中获得授权的网域,否则系统会抛出错误。只有在开发者配置并接受 Firebase Dynamic Links 服务条款的情况下,移动应用重定向才适用。仅当 Android 软件包名称和 iOS 软件包 ID 是在同一 Firebase 身份验证项目中进行配置时,才会用到它们。

返回

Promise<string>

使用生成的链接进行解析的 promise。

BaseAuth.getProviderConfig()

根据提供的 ID 查找身份验证提供方配置。返回一个使用与指定提供方 ID 对应的提供方配置进行解析的 promise。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。

如要支持 SAML 和 OIDC 提供方,则必须使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档

签名

getProviderConfig(providerId: string): Promise<AuthProviderConfig>;

参数

参数 类型 说明
providerId string 与要返回的提供方配置对应的提供方 ID。

返回

Promise<AuthProviderConfig>

使用与所提供 ID 对应的配置进行解析的 promise。

BaseAuth.getUser()

获取与指定 uid 对应的用户的用户数据。

有关代码示例和详细文档,请参阅检索用户数据

签名

getUser(uid: string): Promise<UserRecord>;

参数

参数 类型 说明
uid string 与要提取其数据的用户对应的 uid

返回

Promise<UserRecord>

使用与提供的 uid 对应的用户数据执行的 promise。

BaseAuth.getUserByEmail()

获取与指定电子邮件对应的用户的用户数据。

有关代码示例和详细文档,请参阅检索用户数据

签名

getUserByEmail(email: string): Promise<UserRecord>;

参数

参数 类型 说明
电子邮件 string 要获取其数据的用户对应的电子邮件地址。

返回

Promise<UserRecord>

使用与提供的电子邮件地址对应的用户数据执行的 promise。

BaseAuth.getUserByPhoneNumber()

获取与指定电话号码对应的用户的用户数据。电话号码必须符合 E.164 规范。

有关代码示例和详细文档,请参阅检索用户数据

签名

getUserByPhoneNumber(phoneNumber: string): Promise<UserRecord>;

参数

参数 类型 说明
电话号码 string 要获取其数据的用户对应的电话号码。

返回

Promise<UserRecord>

一个由与提供的电话号码对应的用户数据执行的 promise。

BaseAuth.getUserByProviderUid()

获取与指定提供方 ID 对应的用户的用户数据。

有关代码示例和详细文档,请参阅检索用户数据

签名

getUserByProviderUid(providerId: string, uid: string): Promise<UserRecord>;

参数

参数 类型 说明
providerId string 提供方 ID,例如 Google 提供方为“google.com”。
uid string 指定提供商的用户标识符。

返回

Promise<UserRecord>

使用与给定提供程序 ID 对应的用户数据执行的 promise。

BaseAuth.getUsers()

获取与指定标识符对应的用户数据。

无法保证排序;特别是,结果列表中的第 n 个条目不保证一定等于输入参数列表中的第 n 个条目。

最多只能提供 100 个标识符。如果提供的标识符超过 100 个,此方法将抛出 FirebaseAuthError。

签名

getUsers(identifiers: UserIdentifier[]): Promise<GetUsersResult>;

参数

参数 类型 说明
identifiers UserIdentifier[] 用于指示应返回哪些用户记录的标识符。不得超过 100 个条目。

返回

Promise<GetUsersResult>

解析为相应用户记录的 promise。

异常

FirebaseAuthError:如果有任何标识符无效或指定的标识符超过 100 个。

BaseAuth.importUsers()

将提供的用户列表导入 Firebase Auth。一次最多可以导入 1000 位用户。导入带密码的用户时,必须指定 UserImportOptions。此操作针对批量导入进行了优化,并且会忽略对 uidemail 和其他标识符唯一性的检查,而这可能导致重复。

签名

importUsers(users: UserImportRecord[], options?: UserImportOptions): Promise<UserImportResult>;

参数

参数 类型 说明
用户 UserImportRecord[] 要导入 Firebase Authentication 的用户记录列表。
选项 UserImportOptions 用户导入选项,当提供的用户包含密码凭据时,必须提供。

返回

Promise<UserImportResult>

一个在操作使用导入结果完成时解析的 promise。包括成功的导入次数、失败的导入次数及相应的错误。

BaseAuth.listProviderConfigs()

返回与提供的过滤条件匹配的现有提供程序配置的列表。一次最多可以列出 100 项提供方配置。

如要支持 SAML 和 OIDC 提供方,则必须使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档

签名

listProviderConfigs(options: AuthProviderConfigFilter): Promise<ListProviderConfigResults>;

参数

参数 类型 说明
选项 AuthProviderConfigFilter 要应用的提供方配置过滤器。

返回

Promise<ListProviderConfigResults>

使用满足过滤器要求的提供程序配置列表进行解析的 promise。

BaseAuth.listUsers()

pageToken 指定的偏移量开始,检索大小为 maxResults 的用户列表(仅限单个批次)。此方法用于批量检索指定项目的所有用户。

有关代码示例和详细文档,请参阅列出所有用户

签名

listUsers(maxResults?: number, pageToken?: string): Promise<ListUsersResult>;

参数

参数 类型 说明
maxResults number 页面大小,如果未定义,则为 1000。这也是允许的上限。
pageToken string 下一个页面标记。如果未指定,则返回用户时不设置任何偏移量。

返回

Promise<ListUsersResult>

使用当前一批已下载用户和下一页令牌进行解析的 promise。

BaseAuth.revokeRefreshTokens()

撤消现有用户的所有刷新令牌。

此 API 会将用户的 UserRecord.tokensValidAfterTime 更新为当前世界协调时间 (UTC)。进行此调用时,必须确保正确设置并同步其时钟。

虽然这会撤消指定用户的所有会话,并禁止为现有会话生成任何新 ID 令牌,但现有 ID 令牌在自然到期(一小时)前仍可保持有效状态。要验证 ID 令牌是否已撤消,请使用 BaseAuth.verifyIdToken(),其中 checkRevoked 已设置为 true。

签名

revokeRefreshTokens(uid: string): Promise<void>;

参数

参数 类型 说明
uid string 与要撤消其刷新令牌的用户对应的 uid

返回

Promise<void>

用户的刷新令牌撤消后,系统会执行一个空 promise。

BaseAuth.setCustomUserClaims()

针对由提供的 uid 标识的现有用户设置额外的开发者声明,通常用于定义用户角色和访问权限级别。这些声明应传播到用户已登录的所有设备(令牌到期后或强制刷新令牌时),以及用户下次登录时。如果使用预留的 OIDC 声明名称(sub、iat、iss 等),系统会抛出错误。它们设置在经过身份验证的用户的 ID 令牌 JWT 上。

有关代码示例和详细文档,请参阅定义用户角色和访问权限级别

签名

setCustomUserClaims(uid: string, customUserClaims: object | null): Promise<void>;

参数

参数 类型 说明
uid string 要修改的用户的 uid
customUserClaim 对象 | null 开发者声称要设置 。如果传递 null,系统会删除现有的自定义声明。传递的自定义声明载荷大于 1000 字节会引发错误。自定义声明会添加到用户的 ID 令牌中,该令牌会针对每个经过身份验证的请求进行传输。对于与个人资料无访问权限相关的用户属性,请使用数据库或其他单独的存储系统。

返回

Promise<void>

在操作成功完成时解析的 promise。

BaseAuth.updateProviderConfig()

返回一个使用与指定提供方 ID 对应的更新后的 AuthProviderConfig 进行解析的 promise。如果指定的 ID 不存在,系统会抛出 auth/configuration-not-found 错误。

如要支持 SAML 和 OIDC 提供方,则必须使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP,包括价格和功能,请参阅 GCIP 文档

签名

updateProviderConfig(providerId: string, updatedConfig: UpdateAuthProviderRequest): Promise<AuthProviderConfig>;

参数

参数 类型 说明
providerId string 与要更新的提供方配置对应的提供方 ID。
updatedConfig UpdateAuthProviderRequest 更新后的配置。

返回

Promise<AuthProviderConfig>

使用更新后的提供程序配置进行解析的 promise。

BaseAuth.updateUser()

更新现有用户。

有关代码示例和详细文档,请参阅更新用户

签名

updateUser(uid: string, properties: UpdateRequest): Promise<UserRecord>;

参数

参数 类型 说明
uid string 与要更新的用户对应的 uid
properties UpdateRequest 要在所提供用户上更新的属性。

返回

Promise<UserRecord>

使用更新后的用户数据执行的 promise。

BaseAuth.verifyIdToken()

验证 Firebase ID 令牌 (JWT)。如果令牌有效,则使用令牌的已解码声明执行 promise;否则,系统会拒绝该 promise。

如果 checkRevoked 设置为 true,请先验证对应的用户是否已停用。如果是,系统会抛出 auth/user-disabled 错误。如果否,验证与 ID 令牌对应的会话是否已撤消。如果相应用户的会话失效,系统会抛出 auth/id-token-revoked 错误。如果未指定,则不应用检查。

有关代码示例和详细文档,请参阅验证 ID 令牌

签名

verifyIdToken(idToken: string, checkRevoked?: boolean): Promise<DecodedIdToken>;

参数

参数 类型 说明
idToken string 要验证的 ID 令牌。
已撤消检查 boolean 是否检查 ID 令牌是否已撤消。这需要向 Firebase Auth 后端发出一个额外请求,以检查相应用户的 tokensValidAfterTime 时间。如果未指定,系统不会应用此附加检查。

返回

Promise<DecodedIdToken>

如果 ID 令牌有效,则使用令牌的已解码声明来执行的 promise;否则,为被拒绝的 promise。

BaseAuth.verifySessionCookie()

验证 Firebase 会话 Cookie。返回带有 Cookie 声明的 Promise。如果无法验证 Cookie,则拒绝 promise。

如果 checkRevoked 设置为 true,请先验证相应用户是否已停用:如果是,系统会抛出 auth/user-disabled 错误。如果否,验证与会话 Cookie 对应的会话是否已撤消。如果相应用户的会话失效,系统会抛出 auth/session-cookie-revoked 错误。如果未指定,则不执行检查。

有关代码示例和详细文档,请参阅验证会话 Cookie

签名

verifySessionCookie(sessionCookie: string, checkRevoked?: boolean): Promise<DecodedIdToken>;

参数

参数 类型 说明
会话 Cookie string 要验证的会话 Cookie。
已撤消检查 boolean

返回

Promise<DecodedIdToken>

如果会话 Cookie 有效,则使用会话 Cookie 的解码声明来执行的 promise;否则,为被拒绝的 promise。