TenantAwareAuth class

租户感知的 Auth 接口,用于管理用户、配置 SAML/OIDC 提供方、生成用于重设密码、验证电子邮件等特定租户的电子邮件链接。

如需支持多租户,需要使用 Google Cloud 的 Identity Platform (GCIP)。如需详细了解 GCIP(包括价格和功能),请参阅 GCIP 文档

每个租户都包含各自的身份提供商、设置和用户组。借助 TenantAwareAuth,您还可以管理特定租户的用户和相应的 OIDC/SAML 配置,还可以验证登录特定租户的用户的 ID 令牌,还可以为属于该租户的用户生成电子邮件操作链接。

可通过调用 TenantManager.authForTenant() 来实例化特定 tenantIdTenantAwareAuth 实例。

签名

export declare class TenantAwareAuth extends BaseAuth 

扩展BaseAuth

属性

属性 修饰符 类型 说明
tenantId 字符串 与此 TenantAwareAuth 实例对应的租户标识符。对用户管理 API、OIDC/SAML 提供方管理 API、电子邮件链接生成 API 等的所有调用都将仅在此租户的范围内应用。

方法

方法 修饰符 说明
createSessionCookie(idToken, sessionCookieOptions) 使用指定选项创建新的 Firebase 会话 Cookie。创建的 JWT 字符串可设置为具有自定义 Cookie 政策的服务器端会话 Cookie,并可用于会话管理。会话 Cookie JWT 将具有与所提供的 ID 令牌相同的负载声明。如需查看代码示例和详细文档,请参阅管理会话 Cookie
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

TenantAwareAuth.tenantId

与此 TenantAwareAuth 实例对应的租户标识符。对用户管理 API、OIDC/SAML 提供方管理 API、电子邮件链接生成 API 等的所有调用都将仅在此租户的范围内应用。

签名

readonly tenantId: string;

TenantAwareAuth.createSessionCookie()

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

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

签名

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

参数

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

返回

承诺<字符串>

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

TenantAwareAuth.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 字符串 要验证的 ID 令牌。
已撤消检查 布尔值 是否检查 ID 令牌是否已被撤消。这需要向 Firebase Auth 后端发送额外的请求,以检查相应用户的 tokensValidAfterTime 时间。如果未指定,则不会应用此附加检查。

返回

Promise<DecodedIdToken>

如果 ID 令牌有效,则表示通过令牌的已解码声明实现的 promise;否则,返回被拒绝的 promise。

TenantAwareAuth.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 字符串 要验证的会话 Cookie。
已撤消检查 布尔值

返回

Promise<DecodedIdToken>

在会话 Cookie 有效的情况下,通过会话 Cookie 的已解码声明实现的 promise;否则,返回被拒绝的 promise。