用于生成通用OAuthCredential的提供程序。
签名:
export declare class OAuthProvider extends BaseOAuthProvider
扩展: BaseOAuthProvider
方法
方法 | 修饰符 | 描述 |
---|---|---|
凭证(参数) | 从通用 OAuth 提供程序的访问令牌或 ID 令牌创建OAuthCredential 。 | |
凭证来自错误(错误) | static | 用于从登录、链接或重新身份验证操作期间引发的AuthError中提取基础OAuthCredential 。 |
凭证来自JSON(json) | static | 从 JSON 字符串或普通对象创建OAuthCredential 。 |
凭证来自结果(用户凭证) | static | 用于从UserCredential中提取底层OAuthCredential 。 |
OAuthProvider.credential()
从通用 OAuth 提供程序的访问令牌或 ID 令牌创建OAuthCredential 。
当提供带有随机数字段的 ID 令牌时,需要原始随机数。原始随机数的 SHA-256 哈希必须与 ID 令牌中的随机数字段匹配。
签名:
credential(params: OAuthCredentialOptions): OAuthCredential;
参数
范围 | 类型 | 描述 |
---|---|---|
参数 | OAuth凭据选项 | 包含 ID 令牌、访问令牌和原始随机数的选项对象或 ID 令牌字符串。 |
返回:
例子
// `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;
参数
范围 | 类型 | 描述 |
---|---|---|
错误 | Firebase错误 |
返回:
OAuth 凭证|无效的
OAuthProvider.credentialFromJSON()
从 JSON 字符串或普通对象创建OAuthCredential 。
签名:
static credentialFromJSON(json: object | string): OAuthCredential;
参数
范围 | 类型 | 描述 |
---|---|---|
json | 对象|细绳 | 普通对象或 JSON 字符串 |
返回:
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;