[英]Flutter store users data with Cloud Firestore and Firebase Auth
我在Cloud Firestore中有一組“用戶”,我正在使用Firebase Auth對我的應用用戶進行身份驗證,如下所示:
這是我的問題:這個 model 或其他類型是否存在安全問題?
我對 Google 文檔感到困惑,因為它說用戶的 UID 對 Firebase 項目是唯一的,但不應用於向后端服務器驗證我的用戶。 它還說,在這種情況下,我應該使用 FirebaseUser.getToken () 但該令牌可以更改,因此它將在我的數據庫中創建一個新用戶。
所以,我的第二個問題是:你應該什么時候使用那個令牌? 請給我一個例子。
謝謝您的幫助。
用戶身份
您可以使用 google 生成的 user_id 以供將來參考。 只要用戶已經在數據庫中,對於給定的用戶 email 或身份驗證類型,這將永遠不會改變。
示例:如果用戶使用 google federated login 使用 user1@example.com 登錄,則用戶記錄將保存在 Firebase 和 USER_ID( ABFDe12cdaa2...
)將被分配(您可以在 URL 中使用此 id 來查看用戶profile 等它有 32 個字符長(我不確定這里到底是什么)。現在,如果用戶嘗試使用相同的電子郵件(user1@example.com)再次注冊,那么它會拉取之前的記錄ABFDe12cdaa2...
如果您從 firebase 數據庫中刪除 user1@example.com(Firebase 為您的項目維護自己的用戶數據庫,With 具有有限數量的用戶屬性)。然后用戶嘗試再次登錄,然后生成新的 USER_ID .
現在令牌:
由於您的 USER_ID 是公開的,因此每個人都可以看到。 它不用於身份驗證。
因此,您需要生成令牌(這是更長的用戶 ID)以通過 Firebase 以編程方式進行身份驗證。 它的令牌是臨時的並且特定於用戶。 它將在一段時間后過期(您可以在創建令牌時定義該時間)。 刷新令牌用於獲取新令牌。
編寫此答案時,我沒有任何代碼示例。 我將使用代碼示例進行更新,如果我找到任何。
希望我澄清了你的一些問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.