【发布时间】:2019-05-20 09:02:21
【问题描述】:
过去,我在 web 客户端中使用 firebase.auth,一旦用户创建另一个用户,我会链接某些安全逻辑:
- 创建用户后,我会发送一封电子邮件以验证您的电子邮件 使用函数 user.sendEmailVerification ()。
- 由于该用户是由另一个用户创建的,因此我分配了一个默认密码 并使用 sendPasswordResetEmail() 函数让用户 注册他的新密码。
到目前为止,这对我来说效果很好,但是现在 出于多种原因,我需要将该逻辑移至我的服务器,因为我正在开发具有云功能的后端并且我正在使用Node.js Firebase Admin SDK 版本 6.4.0,但我找不到使用 user.sendEmailVerification() 和 sendPasswordResetEmail() 的功能在服务器上实现相同逻辑的方法,我发现最接近的是:
- auth.generateEmailVerificationLink(电子邮件)
- auth.generatePasswordResetLink(电子邮件)
但它只会为每个链接生成一个链接,顺便说一下,唯一的 emailVerification() 为我服务,generatePasswordReset 的链接总是告诉我:
再次尝试重置密码
您的密码重置请求已过期或链接已过期 已经用过了。
虽然是新的链接,但没有被使用过。
我的 3 个问题是:
- 如何使 sendEmailVerification () 和 sendPasswordResetEmail() 函数在服务器上工作吗?
- 如何使生成的链接使用 auth.generatePasswordResetLink(电子邮件)在服务器上正常工作吗?
- 有没有办法使用服务器上的模板和电子邮件 在 firebase 身份验证中?
提前感谢您与我分享您的经验,以及所有程序员社区的堆栈溢出。
【问题讨论】:
-
尚不清楚您要在这里完成什么。您声称您正在让一个用户创建另一个用户,但不清楚正在验证谁的电子邮件以及正在重置哪个用户的密码。请提供一个清晰的流程并对每个用户的电子邮件进行不同的标记,以便我们将它们区分开来。
标签: firebase firebase-authentication google-cloud-functions firebase-admin