2017-06-20 15 views
0

我正在使用离子3和firebase的后端。在我的应用程序,我试图让用户注册用户名和密码。那么默认情况下,firebase不提供该选项。所以我得到用户的输入作为用户名(例如:'mike123'),然后我添加@ myapp.com。所以它看起来像一封电子邮件:'[email protected]'。这一切都很好,但是当用户想要重置密码时就出现了一个问题。是否有可能让用户在他们想要重置密码时输入任何有效的电子邮件地址?用户在密码重置时可以选择任何电子邮件地址?

回答

1

可以更改用户的密码https://firebase.google.com/docs/auth/admin/manage-users#update_a_user。请注意,这位于Firebase Admin SDK中,因此将需要您在受信任的环境中运行代码,例如您控制的服务器或云功能。

但通过伪造电子邮件地址来伪造用户名+密码是不理想的。我会考虑为您的需求创建自定义auth提供程序。

+0

thx @Frank van Puffelen。我会考虑自定义验证.. – Mikethetechy

+0

如果我的回答很有用,请点击左侧的upvote按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –

+0

谢谢,是的,它是有用的。抱歉,我的坏消息忘记了upvote/checkmark它 – Mikethetechy

1

如果发送重置密码请求时提供的电子邮件对任何用户都不存在,则它将失败。

在Android中,调用sendPasswordResetEmail与非现有的电子邮件,它会返回一个:

FirebaseAuthInvalidUserException: There is no user record corresponding to this identifier. The user may have been deleted. 

你应该问来自用户的一个有效的电子邮件以及基于用户创建单独保存自己喜欢的用户名。

+0

thx @AL。对于答复,在这种情况下,我不能使用用户名权限登录用户..它必须是一个有效的电子邮件地址 – Mikethetechy

+0

不一定。在登录期间,您可以验证提供的用户名是否有相应的电子邮件,然后将其用于登录(请参阅[答](https://stackoverflow.com/a/41201980/4625829))。不过,我之前没有尝试过这种方法(我只是直接使用电子邮件),所以我不确定授予对未经身份验证的用户的读访问权是否安全。 –

+0

ic如果我可以检查用户名与相应的电子邮件,这将是伟大..thxx的建议@AL。 – Mikethetechy

相关问题