Google 致力于为黑人社区推动种族平等。查看具体举措

使用自定义身份验证系统在 JavaScript 中使用 Firebase 进行身份验证

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
您可以将 Firebase 身份验证与自定义身份验证系统集成,方法是修改身份验证服务器以在用户成功登录时生成自定义签名令牌。您的应用接收此令牌并使用它向 Firebase 进行身份验证。

在你开始之前

  1. 将 Firebase 添加到您的 JavaScript 项目中。
  2. 获取项目的服务器密钥:
    1. 转到项目设置中的服务帐户页面。
    2. 点击服务帐户页面的Firebase Admin SDK部分底部的生成新私钥
    3. 新服务帐户的公钥/私钥对会自动保存在您的计算机上。将此文件复制到您的身份验证服务器。

使用 Firebase 进行身份验证

  1. 当用户登录您的应用程序时,将他们的登录凭据(例如,他们的用户名和密码)发送到您的身份验证服务器。您的服务器检查凭据并在它们有效时返回自定义令牌
  2. 从身份验证服务器收到自定义令牌后,将其传递给signInWithCustomToken以登录用户:

    Web version 9

    import { getAuth, signInWithCustomToken } from "firebase/auth";
    
    const auth = getAuth();
    signInWithCustomToken(auth, token)
      .then((userCredential) => {
        // Signed in
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web version 8

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

下一步

用户首次登录后,会创建一个新用户帐户并将其链接到凭据(即用户名和密码、电话号码或身份验证提供商信息),即用户登录时使用的凭据。这个新帐户作为 Firebase 项目的一部分存储,可用于在项目中的每个应用中识别用户,无论用户如何登录。

  • 在您的应用程序中,了解用户身份验证状态的推荐方法是在Auth对象上设置观察者。然后,您可以从User对象中获取用户的基本配置文件信息。请参阅管理用户

  • 在您的 Firebase 实时数据库和云存储安全规则中,您可以从auth变量中获取登录用户的唯一用户 ID,并使用它来控制用户可以访问哪些数据。

您可以通过将身份验证提供程序凭据链接到现有用户帐户来允许用户使用多个身份验证提供程序登录您的应用程序。

要注销用户,请调用signOut

Web version 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web version 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});