设置最小密码长度 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