你在那儿找到了文档:Authenticate Using Google Sign-In with JavaScript。
您可以通过将 Google 登录功能集成到您的应用中,让您的用户使用他们的 Google 帐户向 Firebase 进行身份验证。您可以通过使用 Firebase SDK 执行登录流程或手动执行 Google 登录流程并将生成的 ID 令牌传递给 Firebase 来集成 Google 登录。
开始之前:
- 将 Firebase 添加到您的 JavaScript 项目中。
- 在 Firebase 控制台中启用 Google 登录:
- 在 Firebase 控制台中,打开 Auth 部分。
- 在登录方法选项卡上,启用 Google 登录方法并点击保存。
- 使用 Firebase SDK 处理登录流程
如果您正在构建一个 Web 应用程序,最简单的验证用户身份的方法是
Firebase 使用他们的 Google 帐户来处理登录流程
Firebase JavaScript SDK。 (如果您想在 Node.js 中对用户进行身份验证或
其他非浏览器环境,您必须手动处理登录流程。)
要使用 Firebase JavaScript SDK 处理登录流程,请按以下步骤操作:
创建 Google 提供程序对象的实例:
var provider = new firebase.auth.GoogleAuthProvider();
可选:指定您希望从身份验证提供程序请求的其他 OAuth 2.0 范围。要添加范围,请致电addScope()。
例如:
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
请参阅身份验证提供程序文档。
可选:要将提供商的 OAuth 流程本地化为用户的首选语言,而不显式传递相关的自定义 OAuth 参数,请在启动 OAuth 流程之前更新 Auth 实例上的语言代码。
例如:
firebase.auth().languageCode = 'pt';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();
可选:指定要随 OAuth 请求一起发送的其他自定义 OAuth 提供程序参数。要添加自定义参数,请使用包含 OAuth 提供程序文档指定的键和相应值的对象对已初始化的提供程序调用 setCustomParameters。
例如:
provider.setCustomParameters({
'login_hint': 'user@example.com'
});
不允许保留所需的 OAuth 参数,将被忽略。有关更多详细信息,请参阅身份验证提供程序参考。
使用 Google 提供程序对象向 Firebase 进行身份验证。您可以通过打开一个弹出窗口或重定向到登录页面来提示您的用户使用他们的 Google 帐户登录。移动设备首选重定向方法。
要使用弹出窗口登录,请调用 signInWithPopup:
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
另请注意,您可以检索 Google 提供商的 OAuth 令牌,该令牌可用于使用 Google API 获取其他数据。
这也是您可以捕获和处理错误的地方。有关错误代码列表,请查看 Auth Reference Docs。
要通过重定向到登录页面进行登录,请调用signInWithRedirect:
firebase.auth().signInWithRedirect(provider);
然后,您还可以在页面加载时通过调用 getRedirectResult() 来检索 Google 提供商的 OAuth 令牌:
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// ...
}
// The signed-in user info.
var user = result.user;
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});