在你開始之前
- 將 Firebase 新增到您的 JavaScript 專案。
- 取得項目的伺服器金鑰:
- 前往項目設定中的服務帳戶頁面。
- 點選服務帳戶頁面Firebase Admin SDK部分底部的產生新私鑰。
- 新服務帳戶的公鑰/私鑰對會自動儲存在您的電腦上。將此文件複製到您的身份驗證伺服器。
使用 Firebase 進行身份驗證
- 當使用者登入您的應用程式時,將他們的登入憑證(例如使用者名稱和密碼)發送到您的身份驗證伺服器。您的伺服器檢查憑證並傳回自訂令牌(如果它們有效)。
- 從身份驗證伺服器收到自訂令牌後,將其傳遞給
signInWithCustomToken
以登入使用者:Web modular API
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 namespaced API
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 modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });