OAuthProvider class

可產生一般 OAuth 憑證的供應商。

簽名:

export declare class OAuthProvider extends BaseOAuthProvider 

擴充:BaseOAuthProvider

方法

方法 修飾符 說明
credential(參數) 透過一般 OAuth 供應商的存取權杖或 ID 權杖建立 OAuthCredential
credentialFromError(錯誤) static 用於從登入、連結或重新驗證作業期間擲回的 AuthError 中,擷取基礎 OAuthCredential
credentialFromJSON(json) static 透過 JSON 字串或純物件建立 OAuthCredential
credentialFromResult(使用者憑證) static 用於從 UserCredential 擷取基礎 OAuthCredential

OAuthProvider.credential()

透過一般 OAuth 供應商的存取權杖或 ID 權杖建立 OAuthCredential

如果提供的 ID 權杖包含 Nonce 欄位,則必須提供原始 Nonce。原始 Nonce 的 SHA-256 雜湊必須與 ID 權杖中的 Nonce 欄位相符。

簽名:

credential(params: OAuthCredentialOptions): OAuthCredential;

參數

參數 類型 說明
參數 OAuthCredentialOptions 包含 ID 權杖、存取權杖和原始 Nonce 或 ID 權杖字串的選項物件。

傳回:

OAuth 憑證

範例

// `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;

參數

參數 類型 說明
錯誤 FirebaseError

傳回:

OAuth 憑證 |空值

OAuthProvider.credentialFromJSON()

透過 JSON 字串或純物件建立 OAuthCredential

簽名:

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

參數

參數 類型 說明
json 物件 |字串 純物件或 JSON 字串

傳回:

OAuth 憑證

OAuthProvider.credentialFromResult()

用於從 UserCredential 擷取基礎 OAuthCredential

簽名:

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

參數

參數 類型 說明
使用者憑證 使用者憑證 使用者憑證。

傳回:

OAuth 憑證 |空值

範例 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;