📌  相关文章
📜  使用电子邮件链接的Firebase UI身份验证(1)

📅  最后修改于: 2023-12-03 15:22:25.553000             🧑  作者: Mango

使用电子邮件链接的Firebase UI身份验证

Firebase UI身份验证是一个开源库,它为开发者提供了快捷、简便的方式来实现用户身份验证。这里我们将介绍如何使用Firebase UI身份验证模块来实现使用电子邮件链接的身份验证。

准备工作
  • Firebase项目
  • Firebase CLI
步骤
步骤1:安装 Firebase UI 身份验证

您可以使用以下命令安装 Firebase UI 身份验证:

npm install --save firebaseui
步骤2:启用电子邮件链接身份验证

在 Firebase 控制台 “身份验证” 页面中,选择“电子邮件/密码”,启用“从电子邮件提供商登录”中的“仅通过电子邮件登录”, 并将“访问代码”设置为“电子邮件链接”。

步骤3:初始化Firebase UI身份验证

在您的 JavaScript 文件中,您需要初始化 Firebase UI 身份验证。在下面的示例中,我们假定您已在节点.js中使用了 Firebase Admin SDK 管理用户。

var firebase = require("firebase");

// Initialize Firebase
var config = {
  apiKey: 'YOUR_API_KEY',
  authDomain: 'YOUR_AUTH_DOMAIN',
  databaseURL: 'YOUR_DATABASE_URL',
  projectId: 'YOUR_PROJECT_ID',
  storageBucket: 'YOUR_STORAGE_BUCKET',
  messagingSenderId: 'YOUR_SENDER_ID'
};

firebase.initializeApp(config);
步骤4:使用 Firebase UI 显示身份验证界面

在您的应用程序中打开一个页面以便用户登录并显示 Firebase UI 身份验证界面。此示例将 #firebaseui-auth-container 元素作为此目的的容器。

// Import Firebase UI
var firebaseui = require('firebaseui');

// Initialize the FirebaseUI Widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());

// FirebaseUI configuration.
var uiConfig = {
  signInOptions: [
    firebase.auth.EmailAuthProvider.PROVIDER_ID,
  ],
  // Will display the email verification sent notification
  callbacks: {
    signInSuccessWithAuthResult: function(authResult, redirectUrl) {
      // User successfully signed in.
      return false;
    },
    afterSendEmailVerification: function() {
      // Email verification should be sent directly which should
      // be confirmed by the user.
      return false;
    },
  },
};

ui.start('#firebaseui-auth-container', uiConfig);
步骤5:发送验证电子邮件

您还需要使用Firebase API发送验证电子邮件以确认用户输入的电子邮件地址是他们的。此示例将启示如何完成此操作。

var actionCodeSettings = {
  url: 'https://www.example.com/emailVerification',
  handleCodeInApp: true
};

firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Email sent.
  })
  .catch(function(error) {
    // An error happened.
  });
总结

Firebase UI身份验证模块使身份验证过程变得轻松愉快。通过遵循上述步骤,您将能够轻松地实现使用电子邮件链接的身份验证。