OAuthProvider class

用于生成通用 OAuthCredential 的提供程序。

签名

export declare class OAuthProvider extends BaseOAuthProvider 

扩展:BaseOAuthProvider

方法

方法 修饰符 说明
credential(params) 通过通用 OAuth 提供方的访问令牌或 ID 令牌创建 OAuthCredential
credentialFromError(error) static 用于从登录、关联或重新进行身份验证操作期间抛出的 AuthError 中提取底层 OAuthCredential
credentialFromJSON(json) static 从 JSON 字符串或普通对象创建 OAuthCredential
credentialFromResult(userCredential) static 用于从 UserCredential 提取底层 OAuthCredential

OAuthProvider.credential()

通过通用 OAuth 提供方的访问令牌或 ID 令牌创建 OAuthCredential

如果提供了包含 Nonce 字段的 ID 令牌,则需要原始 Nonce。原始 Nonce 的 SHA-256 哈希值必须与 ID 令牌中的 Nonce 字段匹配。

签名

credential(params: OAuthCredentialOptions): OAuthCredential;

参数

参数 类型 说明
params OAuthCredentialOptions 包含 ID 令牌、访问令牌和原始 Nonce 或 ID 令牌字符串的选项对象。

返回

OAuthCredential

示例

// `googleUser` from the onsuccess Google Sign In callback.
// Initialize a generate OAuth provider with a `google.com` providerId.
const provider = new OAuthProvider('google.com');
const credential = provider.credential({
  idToken: googleUser.getAuthResponse().id_token,
});
const result = await signInWithCredential(credential);

OAuthProvider.credentialFromError()

用于从登录、关联或重新进行身份验证操作期间抛出的 AuthError 中提取底层 OAuthCredential

签名

static credentialFromError(error: FirebaseError): OAuthCredential | null;

参数

参数 类型 说明
error FirebaseError

返回

OAuthCredential |null

OAuthProvider.credentialFromJSON()

从 JSON 字符串或普通对象创建 OAuthCredential

签名

static credentialFromJSON(json: object | string): OAuthCredential;

参数

参数 类型 说明
json 对象 |字符串 普通对象或 JSON 字符串

返回

OAuthCredential

OAuthProvider.credentialFromResult()

用于从 UserCredential 提取底层 OAuthCredential

签名

static credentialFromResult(userCredential: UserCredential): OAuthCredential | null;

参数

参数 类型 说明
userCredential UserCredential 用户凭据。

返回

OAuthCredential |null

示例 1

// Sign in using a redirect.
const provider = new OAuthProvider('google.com');
// Start a sign in process for an unauthenticated user.
provider.addScope('profile');
provider.addScope('email');
await signInWithRedirect(auth, provider);
// This will trigger a full page redirect away from your app

// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
if (result) {
  // This is the signed-in user
  const user = result.user;
  // This gives you a OAuth Access Token for the provider.
  const credential = provider.credentialFromResult(auth, result);
  const token = credential.accessToken;
}

示例 2

// Sign in using a popup.
const provider = new OAuthProvider('google.com');
provider.addScope('profile');
provider.addScope('email');
const result = await signInWithPopup(auth, provider);

// The signed-in user info.
const user = result.user;
// This gives you a OAuth Access Token for the provider.
const credential = provider.credentialFromResult(auth, result);
const token = credential.accessToken;