如何使用与Firebase提供的电子邮件服务不同的电子邮件服务来验证电子邮件和更改密码?

时间:2018-08-27 14:37:22

标签: angular firebase firebase-authentication angularfire2

我正在开发一个Angular项目,它使用Firebase处理身份验证和数据存储。

但是,由于Firebase电子邮件不允许使用自定义的精美模板,因此我想使用其他电子邮件服务,但是我无法弄清楚如何对忘记密码和auth.applyActionCode使用“ auth.confirmPasswordReset”之类的功能'。

忘记密码的问题是,要能够在不使用电子邮件代码的情况下更改密码,用户需要进行身份验证,但需要通过身份验证才能知道密码。在确认第三方应用程序发送的自定义令牌后,我不知道是否可以仅通过了解用户的电子邮件来在Firebase中强制更改用户密码。

电子邮件验证问题更容易一些,无论如何都需要对用户进行身份验证以确认其帐户的电子邮件,但是我不需要编写操作代码,而是编写自己的函数来确认验证代码的有效性,并且该代码是否有效,函数会将用户中的“ emailVerified”值从false更改为true。问题是,这似乎是不可能的,或者我找不到任何允许我执行此操作的功能。

是否可以执行上述任何一项操作,或者Firebase无法使用其他电子邮件服务?

1 个答案:

答案 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)上运行它。