2017-07-27 103 views
1

我的应用程序与Firebase数据库和身份验证相关联。Firebase身份验证:密码必须包含大写字母

当用户创建一个帐户时,密码的唯一要求是它的长度为6个字符。无论如何,我可以让密码更复杂,比如让他们有大写字母和数字。

我可以直接从firebase执行此操作,还是需要从我的代码执行此操作?

+0

到目前为止试过了什么?你能告诉我们你的密码代码 – UmarZaii

+1

是的,你当然可以做到这一点。它将在前端完成,而不是在后端完成。 在您的应用程序中,您可以编写一些字符串解析方法,确保该字符串包含大写字母和数字 –

+0

如果您想直接从Firebase执行此操作,则可能需要使用Firebase规则。 – UmarZaii

回答

2

使用此功能。它包括6-15范围,即最小6和最大15个字符。一个大写字母,分别为一个数字。

func isValidPasswordString(pwdStr:String) -> Bool { 

    let pwdRegEx = "(?:(?:(?=.*?[0-9])(?=.*?[[email protected]#$%&*ˆ+=_])|(?:(?=.*?[0-9])|(?=.*?[A-Z])|(?=.*?[[email protected]#$%&*ˆ+=_])))|(?=.*?[a-z])(?=.*?[0-9])(?=.*?[[email protected]#$%&*ˆ+=_]))[[email protected]#$%&*ˆ+=_]{6,15}" 

    let pwdTest = NSPredicate(format:"SELF MATCHES %@", pwdRegEx) 
    return pwdTest.evaluate(with: pwdStr) 
} 

本功能将返回true为有效密码字符串

1

有没有办法来配置火力地堡认证的规则,密码强度。

另见

您可以(也应该)从您的代码中限制它。但是,您无法通过直接调用API来阻止恶意用户绕过此操作。

如果密码强度对您的应用程序是一个硬性要求,请考虑执行custom authentication。这example of custom username (instead of email) and password authentication可能会有所帮助。