设置最小密码长度 Firebase 电子邮件和密码身份验证

Posted

技术标签:

【中文标题】设置最小密码长度 Firebase 电子邮件和密码身份验证【英文标题】:Set Minimum Password Length Firebase Email & Password Authentication 【发布时间】:2016-07-19 00:13:38 【问题描述】:

使用 Firebase 的电子邮件和密码设置时,密码似乎没有安全限制。

例如,我可以创建以下用户:

firebaseRef.createUser(

    email: "john.doe@example.org",
    password: "j"
);

我想至少设置一个最小密码长度。 firebase 是否提供了一种方法来做到这一点?

【问题讨论】:

【参考方案1】:

使用弱密码(少于 6 个字符)创建新帐户或更新现有帐户的密码时会抛出 FirebaseAuthWeakPasswordException。使用 getReason() 获取一条消息,其中包含验证失败的原因,您可以将其显示给您的用户。

更多详情请见https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuthWeakPasswordException。

【讨论】:

String reason = ((FirebaseAuthWeakPasswordException) task.getException()).getReason(); 其实只要使用task.getException().getMessage()也能按预期工作。【参考方案2】:

目前无法为 Firebase 电子邮件+密码身份验证配置最小密码长度或强度。

您可以在您的应用中构建这样的限制,但精通技术的用户可以通过调用 API 绕过该限制。或者您可以引入只有服务器端进程可以设置的“isPasswordApproved”标志,然后在那里验证密码强度。但这些听起来都不是很吸引人。

【讨论】:

【参考方案3】:

我认为在这里实现前端验证就足够了(至少在大部分应用程序中)。

如果此验证的目的是保护用户本人,那么允许用户破解您的应用程序并将密码设置为password,去论坛并发布凭据并跳出并没有什么害处一个窗口。

【讨论】:

问题是用户可以重置密码并设置新密码,无需应用程序进行验证(除非使用自定义身份验证处理程序)。【参考方案4】:

问题在于 Firebase 发送的重置密码表单。使用它会很好,而且不必构建它。

【讨论】:

您可以自定义重置密码表单并将用户导航到自定义 URL。从那里您可以处理自定义逻辑/后端调用等:firebase.google.com/docs/auth/custom-email-handler

以上是关于设置最小密码长度 Firebase 电子邮件和密码身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如果用户已经无密码登录,firebase 可以设置密码身份验证吗?

如何设置密码的最小长度

我无法登录。即使我在Firebase中输入了电子邮件和密码,它仍然会保持Saying Error Logging

Firebase 无密码电子邮件身份验证无法在 iOS 上打开应用

firebase:如何链接电子邮件验证和密码

在组策略中设置最小密码长度