有没有办法从我的 Node.js 服务器使用 Firebase Admin SDK 发送验证电子邮件?

Posted

技术标签:

【中文标题】有没有办法从我的 Node.js 服务器使用 Firebase Admin SDK 发送验证电子邮件?【英文标题】:Is there a way to send the verification email with the Firebase Admin SDK from my Node.js server? 【发布时间】:2017-11-16 18:38:50 【问题描述】:

有没有办法从我的服务器发送电子邮件验证电子邮件?

这是在客户端上完成的:

authData.sendEmailVerification().then(function() 

有没有办法在服务器上做?

【问题讨论】:

类似帖子(暂时未答复):groups.google.com/forum/#!topic/firebase-talk/cWdF8gkOH3w @FrankvanPuffelen 确实类似,但我认为重要的是要指出我的问题是电子邮件验证,另一位先生的问题是电话身份验证。 哎呀,好点子。鉴于我们刚刚推出了电话身份验证,我倾向于过度解释事情。 :-) @FrankvanPuffelen ^^ 不管怎样,Firebase 支持的 Gio 告诉我,目前无法从服务器发送验证电子邮件。这是 Firebase 关注的功能还是根本不关注?我已经最终修改了我的代码以使用 firebase 客户端 SDK 发送电子邮件,但我仍然很好奇 :-) 我刚刚检查了所有文档,因为我完全希望能够从 Admin SDK 发送这些验证消息。但实际上:它似乎不存在。我推荐you file a feature request。 【参考方案1】:

firebaser 在这里

令我惊讶的是,目前没有从 Admin SDK 中发送验证电子邮件的选项。我会推荐你​​file a feature request。

可以通过 Admin SDK 执行的操作是 update a user profile to mark their email as verified。如果您愿意,这允许您控制整个验证流程,最后调用 admin.auth().updateUser(...)(在 Node.js 上,请参阅其他支持语言的链接)。

【讨论】:

你好,这是最后加的吗? 我找不到添加它的证据,而且我对这个问题思考得越多,保留这个客户端就越有意义,而我的服务器端管理方法似乎越没有必要。在客户端检查身份验证时,重新发送验证电子邮件实际上应该由客户端生成的错误/按钮来处理。【参考方案2】:

我刚刚遇到了和你一样的问题。有一个使用用户的电子邮件地址生成验证链接的功能。

我在一组电子邮件地址上使用了这个函数,然后将结果加载到我的邮件自动化 API 以发送邮件。这个函数奇怪地没有记录:

admin.auth().generateEmailVerificationLink([EMAIL_ADDRESS])

【讨论】:

Email Action Link Documentation【参考方案3】:

你可以使用:

axios.post('https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]',
     requestType: 'VERIFY_EMAIL', idToken: response.data.idToken 
)

https://firebase.google.com/docs/reference/rest/auth#section-send-email-verification

【讨论】:

以上是关于有没有办法从我的 Node.js 服务器使用 Firebase Admin SDK 发送验证电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:将 repl 挂接到远程节点服务器

有没有办法让我的 API 只能由我的 node.js 服务器查询?

有没有办法使用 .NET MVC 提供 vue.js statc 文件?

我无法从我的 node.js firebase 函数 index.js 文件中验证大查询

从我的 android studio java 应用程序上的 node.js 服务器获取 txt 文件

无法从我的 VS Code 扩展 (node.js) 连接到 SQL Server