我目前在使用Firebase和Swift的應用程序中擁有用戶身份驗證3.是否有辦法讓用戶使用某個電子郵件地址註冊使用我的應用程序?您是否只允許具有特定電子郵件地址的用戶註冊並使用您的應用程序
1
A
回答
1
基本上你想要做的是包含一個布爾測試來確定電子郵件文本是否包含你想要的域。
以下是確定輸入文本是否包含設定域的功能。
func isValidEmail(testEmail:String, domain:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-][email protected][\(domain)]+\\.[com]{3,\(domain.characters.count)}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let result = emailTest.evaluate(with: testEmail)
return result
}
下面是使用它
let customDomain = "mycompanyname"
let test = "[email protected]"
if isValidEmail(testEmail: test, domain: customDomain) == true {
//Test succeedes... Here you would register the users as normal
print("register \(test)")
}else{
//Test fails... Here you might tell the user that their email doesn't check out
print("register failed")
}
另外我的例子,我會看看蘋果App Distribution Guide因爲如果要在本地發佈應用程式說僱員基地。
希望這會有所幫助。
+0
謝謝你的幫助,現在就測試! –
+0
這不能工作,如果你的用戶輸入[email protected],它仍然會註冊該電子郵件,你能否再次修復@Stefan –
0
你可以做以下的客戶端和後端檢查執行此:
- 在客戶端,你可以提供一個無效的電子郵件域時阻止登錄。如果您正在使用Google或Facebook等的一些聯合登錄功能,那麼如果電子郵件與您的域名不匹配,則可以返回該用戶的
currentUser.email
和currentUser.delete
。如果您使用GSuite,Google還會提供一個'hd'參數來指定用戶域。 - 您可以使用Firebase函數onCreate事件在每次使用無效的電子郵件域創建一個用戶時快速刪除用戶。
- 如果您正在使用的數據庫的規則,可以阻止訪問,如果郵件不匹配:
".read": "auth != null && auth.uid == $uid" && auth.token.email.matches(/.*@mydomain.com$/)
- 如果您正在使用自己的後端,得到一個用戶的ID令牌時,驗證它,然後得到電子郵件並確保它與您的域名相匹配,如果沒有,您可以刪除該用戶。 Firebase Admin SDK提供了驗證ID令牌並通過UID刪除用戶的功能。
+0
謝謝,我更傾向於#3。 –
相關問題
- 1. 允許用戶使用相同的電子郵件地址註冊3
- 2. 只允許特定的電子郵件註冊用戶角色的Drupal 7
- 3. 只允許來自特定電子郵件域的註冊
- 4. 允許重複的電子郵件地址爲Joomla 2.5用戶註冊
- 5. 只允許一個特定的電子郵件地址
- 6. 只允許某些用戶註冊使用應用程序,它具有授權
- 7. 檢索具有特定電子郵件地址的用戶
- 8. 阻止特定用戶使用虛假電子郵件地址註冊php
- 9. 允許使用用戶名或電子郵件地址登錄
- 10. Facebook是否允許用戶給我的應用程序訪問他們的朋友的電子郵件地址?
- 11. django註冊 - 允許多個用戶的電子郵件ID
- 12. 您的電子郵件客戶端是否允許您以編程方式添加自定義標頭?
- 13. 允許使用電子郵件地址登錄,同時允許具有相同電子郵件地址的多個用戶
- 14. 嘗試使用Fabric Twitter SDK獲取Twitter用戶的電子郵件地址時,顯示「您的應用程序可能無法訪問電子郵件地址」
- 15. 註冊不帶電子郵件地址的Firebase用戶
- 16. 我應該允許我的用戶更新他們在SAAS應用程序中的註冊電子郵件
- 17. 只允許特定的多個電子郵件在Rails中註冊
- 18. 檢索並檢查特定用戶是否輸入了電子郵件地址
- 19. 您只能從您的註冊IP地址訪問
- 20. SuiteCommerce高級網站:允許超過1個用戶使用同一電子郵件地址註冊
- 21. 使用數據註釋檢查特定電子郵件地址
- 22. 護照:允許註冊姓名和電子郵件地址? (本地策略)
- 23. 註冊您的Web應用程序是否需要Google Data API使用?
- 24. 用戶註冊表單應該表明電子郵件地址是否已被使用?
- 25. 允許用戶發送電子郵件到許多不同的動態地址
- 26. 檢查一些電子郵件地址是否在gravatar註冊?
- 27. 如何檢查電子郵件是否已在asp.net中使用,並確保電子郵件在允許用戶註冊前可用?
- 28. Cloudformation - 允許用戶使用電子郵件地址或電話號碼作爲其「用戶名」註冊並登錄的模板屬性
- 29. 我是否需要電子郵件許可才能在註冊期間獲取用戶的Facebook電子郵件
- 30. 從特定電子郵件地址的Playstore安裝的應用程序列表
您可以在沒有安全規則的情況下在firebase中擁有一個節點,其中列出了可以在您的應用上進行身份驗證的所有電子郵件,然後在您註冊時首先驗證它是否爲有效電子郵件。 –
也許你想問的問題是*蘋果是否會批准這樣的應用程序?*(我不知道答案。) – dfd
這取決於你正在嘗試做什麼。 FireBase已經可以輕鬆配置Google,FaceBook和Twitter帳戶的身份驗證。如果您希望人們只使用某個電子郵件域,則應該由應用完成。例如,如果電子郵件在某個域中結束,那麼用戶只能在數據庫中註冊他們的電子郵件,然後像通常那樣進行身份驗證。 – Stefan