我想做一個應用程式,您只能使用我給人們的特定隨機唯一令牌進行注冊。所以我給了他們一個令牌,例如:8743-2342-6587,他們可以進入注冊頁面上的應用程式,輸入這個令牌,并像基本身份驗證一樣輸入電子郵件和密碼。
做到這一點的最佳方法是什么?也許我應該在 Firestore 中做一個免費的代幣集合。在注冊時,我檢查該集合中是否存在令牌,如果是,則將其設定為“非空閑”,這可能是一個布林值。用戶注冊......或者有更好的方法來做這樣的事情嗎?
uj5u.com熱心網友回復:
一種方法是將所有這些令牌存盤在 Firestore 集合中,當用戶輸入代碼時,在 Cloud 函式中對其進行驗證,然后使用 Admin SDK 創建一個帳戶。然后您可以使用客戶端 SDK 登錄用戶。流程如下:
- 用戶輸入憑據以及令牌(如果有)進行注冊
- 這些憑據被發送到Cloud Function,然后使用提供的憑據在 Firebase 身份驗證中創建用戶
- 如果用戶還提供了任何令牌,您可以檢查 Firestore 中是否存在該令牌,然后在資料庫或自定義宣告中設定所需的布林值。
例如:
exports.registerUser = functions.https.onCall((data, context) => {
const { email, password, token } = data;
const { user } = await admin.auth().createUser({email, password})
// const token = {check if token exists in Firestore}
if (token) {
// set custom claims
}
});
您也可以先創建一個帳戶,然后在沒有云功能的情況下直接檢查令牌是否存在,但這僅在令牌與電子郵件相關聯時才有效,因此只有該用戶才能檢查它的存在(除非允許任何人檢查它) .
如果用戶必須首先提供令牌才能創建帳戶,那么我建議使用 Cloud 函式。如果需要,您還可以禁用 Firebase 客戶端 SDK 的注冊(需要 Cloud Identity API)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/400277.html
