Firebase身份验证:密码必须包含大写字母

时间:2017-07-27 08:05:01

标签: swift firebase firebase-realtime-database firebase-authentication

我的应用程序与firebase数据库和身份验证相关联。

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

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

2 个答案:

答案 0 :(得分:2)

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

func isValidPasswordString(pwdStr:String) -> Bool {

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

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

对于有效的密码字符串

,此func将返回true

答案 1 :(得分:1)

无法配置Firebase身份验证的密码强度规则。

另见

您可以(并且应该)将其限制在您的代码中。但是,您无法通过直接调用API来阻止恶意用户绕过此行。

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