簡體   English   中英

Firebase Auth,僅在有人接受后激活創建的帳戶

[英]Firebase Auth, only activate account created after someone accept it

我目前有一個網站使用 firebase auth 作為我的身份驗證。 我的問題是我不想向所有人開放注冊,只向少數應該使用該網站的人開放注冊。 我閱讀了有關 .htaccess 和 .htpasswd 的信息,但由於我在 firebase 托管上托管,所以我認為這是不可能的。

我的問題是如何確保帳戶創建的安全? 我不想在 firebase 控制台手動創建帳戶,而是讓用戶在頁面上創建它。 是否有可能只有在有人在 firebase 控制台上“接受”它或在創建后添加一個額外的步驟后才能讓該帳戶工作,如果使用 firebase 托管,我可以以某種方式保護注冊頁面嗎?

啟用 Firebase 身份驗證后,無法阻止任何用戶創建帳戶。 但他們可以創建帳戶的事實並不一定意味着他們可以使用您的應用程序。

您的用例的典型方法是在某處存儲已批准用戶的列表。 由於您使用的是 Firebase 身份驗證,因此這將采用 UID 列表的形式。

因此,要獲得授權使用您的應用程序,用戶需要經過身份驗證批准 Firebase 身份驗證負責對它們進行身份驗證,而您的后端功能應負責檢查它們的批准狀態。

例如,如果您使用 Cloud Firestore 作為數據庫,則可以將批准的用戶 UID 存儲在一個集合中:

approvedUsers <collection>
  UID1 <document>
  UID2 <document>

然后,您可以在允許用戶(例如)讀取任何數據之前檢查用戶是否獲得授權(經過身份驗證和批准)的服務器端安全規則。

exists(/databases/$(database)/documents/$(document.reference))
service cloud.firestore {
  match /databases/{database}/documents {

    match /myCollection/{document} {

     function isApproved() {
        return exists(/databases/$(database)/documents/approvedUsers/$(request.auth.uid))
      }

      allow read, write: if isApproved();
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM