gpt4 book ai didi

javascript - 如何使用 firebase 发送唯一的注册链接?

转载 作者:行者123 更新时间:2023-11-29 16:33:45 25 4
gpt4 key购买 nike

我想构建一个用户只能通过“邀请”注册的应用程序。已经拥有帐户的用户可以向指定的电子邮件地址发送邀请,然后该应用程序会发送一封电子邮件,其中包含指向注册的链接,其中有一个 token ,并且只能使用指定的电子邮件地址。

首先,如何从 firebase 发送“自动”电子邮件,其次,如何为 URL 生成唯一的注册 token ?

最佳答案

要从 Firebase 发送电子邮件,您可以使用 Cloud Function .关于这个主题有一个官方示例:https://github.com/firebase/functions-samples/tree/Node-8/email-confirmation

正如 Martin Zeitler 所说,您可以使用 push()生成唯一 token 并使用相应电子邮件创建记录的方法。然后当新用户尝试注册时,您可以在注册之前检查他的电子邮件是否与 token 相对应。您可以通过不同的方式做到这一点:再次使用 Cloud Functions,例如使用 HTTPS 云函数(参见 https://firebase.google.com/docs/functions/http-events )或通过在数据库中创建触发云函数的记录(参见 https://firebase.google.com/docs/functions/database-events )。在这两种情况下,您都可以使用 Admin SDK 来注册/创建用户,请参阅 https://firebase.google.com/docs/reference/admin/node/admin.auth.Authhttps://firebase.google.com/docs/auth/admin/manage-users#create_a_user

根据您的评论更新

例如,您可以有一个表单,要求受邀用户输入他的电子邮件和他收到的唯一 token (您可以通过电子邮件中发送的链接打开并预填写此表单)。提交此表单后,它会在实时数据库中创建一个节点,并且此节点创建会触发一个 Cloud Function:

  • 首先,将检查 token 和电子邮件是否对应(并可能检查它们之前未使用过);
  • 其次,如果之前的检查没问题,会将用户注册(即创建)到您的 Firebase 应用。

具体来说,假设在提交表单时我们创建了以下节点:

- registrationRequests
-UID
-email: .....
-token: .....

您可以按照以下方式创建 Cloud Function:

exports.createInvitedUser = functions.database.ref('/registrationRequests/{requestId}')
.onCreate((snap, context) => {
const createdData = snap.val();
const email = createdData.email;
const token= createdData.token;

//First action, verify email and token by reading the node of the database where you initially stored the email/token

//Second action, register the user by using admin.auth().createUser({})
//See https://firebase.google.com/docs/auth/admin/manage-users#create_a_user

})

关于javascript - 如何使用 firebase 发送唯一的注册链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com