我目前在我的应用中使用firebase和swift 3进行用户身份验证。有没有办法让只有某个电子邮件地址的用户注册才能使用我的应用?
答案 0 :(得分:1)
基本上你想要做的是包括一个布尔测试,以确定电子邮件文本是否包含你想要的域。
这是一个确定输入文本是否包含设置域的函数。
func isValidEmail(testEmail:String, domain:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[\(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 = "frank@mycompanyname.com"
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")
}
此外,如果您想在本地分发您的应用以表示员工群,我会看一下Apples App Distribution Guide。
希望这有帮助。
答案 1 :(得分:0)
您可以执行以下客户端和后端检查以强制执行此操作:
(defn style [s]
(str/join ";" (map #(str (name %) ":" ((keyword %) s)) (keys s))))
(style {:padding "20px"
:background "#e68a00"
:color "white"
:font-size "large"
:font-weight "bold"})
和currentUser.email
。谷歌还提供了一个' hd'如果您使用的是GSuite,则指定用户域的参数。currentUser.delete