我正在使用离子3和firebase的后端。在我的应用程序,我试图让用户注册用户名和密码。那么默认情况下,firebase不提供该选项。所以我得到用户的输入作为用户名(例如:'mike123'),然后我添加@ myapp.com。所以它看起来像一封电子邮件:'[email protected]'。这一切都很好,但是当用户想要重置密码时就出现了一个问题。是否有可能让用户在他们想要重置密码时输入任何有效的电子邮件地址?用户在密码重置时可以选择任何电子邮件地址?
回答
您可以更改用户的密码https://firebase.google.com/docs/auth/admin/manage-users#update_a_user。请注意,这位于Firebase Admin SDK中,因此将需要您在受信任的环境中运行代码,例如您控制的服务器或云功能。
但通过伪造电子邮件地址来伪造用户名+密码是不理想的。我会考虑为您的需求创建自定义auth提供程序。
如果发送重置密码请求时提供的电子邮件对任何用户都不存在,则它将失败。
在Android中,调用sendPasswordResetEmail
与非现有的电子邮件,它会返回一个:
FirebaseAuthInvalidUserException: There is no user record corresponding to this identifier. The user may have been deleted.
你应该问来自用户的一个有效的电子邮件以及基于用户创建单独保存自己喜欢的用户名。
thx @AL。对于答复,在这种情况下,我不能使用用户名权限登录用户..它必须是一个有效的电子邮件地址 – Mikethetechy
不一定。在登录期间,您可以验证提供的用户名是否有相应的电子邮件,然后将其用于登录(请参阅[答](https://stackoverflow.com/a/41201980/4625829))。不过,我之前没有尝试过这种方法(我只是直接使用电子邮件),所以我不确定授予对未经身份验证的用户的读访问权是否安全。 –
ic如果我可以检查用户名与相应的电子邮件,这将是伟大..thxx的建议@AL。 – Mikethetechy
- 1. 选择使用电子邮件地址
- 2. 选择电子邮件地址
- 3. 选择电子邮件地址只(SQL)
- 4. 选择所有电子邮件地址,
- 5. 如何调用 - 通过电子邮件重置用户密码
- 6. 单个用户的多个电子邮件地址和密码
- 7. MeteorJS帐户 - 密码密码重置电子邮件
- 8. 1)PasswordResets在请求密码重置时重置电子邮件
- 9. 流星重置密码不发送电子邮件给用户密码重置
- 10. 电子邮件地址中编码的电子邮件地址。可能吗?
- 11. 为每个用户选择一个电子邮件地址
- 12. 通过电子邮件临时密码重置密码
- 13. 解析密码重置电子邮件
- 14. 重置密码电子邮件模板
- 15. Azure AD B2C使用备用电子邮件地址的密码重置策略
- 16. 过滤任何电子邮件地址
- 17. 在生成电子邮件时解密MySQL密码以通知用户密码
- 18. 是否可以确定用户的@ Facebook.com电子邮件地址?
- 19. Django用户注册 - 通过电子邮件重置密码
- 20. 将电子邮件发送到用户的密码重置
- 21. 为什么用户/代理不能选择电子邮件地址或号码?
- 22. Powerbi用户的电子邮件地址
- 23. 如何发送电子邮件在asp.net使用C#到任何电子邮件地址使用Gmail地址
- 24. 如何获取用户在iOS地址簿中选择的电子邮件值?
- 25. Perforce在提交时邮寄任意的电子邮件地址?
- 26. Quickblox,发送电子邮件给新用户以验证电子邮件地址
- 27. 从Backand的密码重置令牌获取电子邮件地址
- 28. 在电子邮件地址
- 29. 检查重复的用户帐户和电子邮件地址
- 30. 当用户输入电子邮件地址时自动发送电子邮件
thx @Frank van Puffelen。我会考虑自定义验证.. – Mikethetechy
如果我的回答很有用,请点击左侧的upvote按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –
谢谢,是的,它是有用的。抱歉,我的坏消息忘记了upvote/checkmark它 – Mikethetechy