我正在开发一个Angular项目,它使用Firebase处理身份验证和数据存储。
但是,由于Firebase电子邮件不允许使用自定义的精美模板,因此我想使用其他电子邮件服务,但是我无法弄清楚如何对忘记密码和auth.applyActionCode使用“ auth.confirmPasswordReset”之类的功能'。
忘记密码的问题是,要能够在不使用电子邮件代码的情况下更改密码,用户需要进行身份验证,但需要通过身份验证才能知道密码。在确认第三方应用程序发送的自定义令牌后,我不知道是否可以仅通过了解用户的电子邮件来在Firebase中强制更改用户密码。
电子邮件验证问题更容易一些,无论如何都需要对用户进行身份验证以确认其帐户的电子邮件,但是我不需要编写操作代码,而是编写自己的函数来确认验证代码的有效性,并且该代码是否有效,函数会将用户中的“ emailVerified”值从false更改为true。问题是,这似乎是不可能的,或者我找不到任何允许我执行此操作的功能。
是否可以执行上述任何一项操作,或者Firebase无法使用其他电子邮件服务?
答案 0 :(得分:3)
如今,实现自己的密码重置的最简单方法是完全实现自己的流程,然后use the Admin SDK to set the user's emailVerified
property to true。例如在Node.js中,它很简单:
admin.auth().updateUser(uid, { emailVerified: true })
此功能仅在Firebase Admin SDKs中可用,这意味着您应仅在受信任的环境(例如开发计算机,您控制的服务器或Cloud Functions)上运行它。