首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一步设置密码并验证电子邮件

一步设置密码并验证电子邮件
EN

Stack Overflow用户
提问于 2022-01-15 02:29:44
回答 1查看 197关注 0票数 0

这里有很多关于电子邮件验证的问题,但似乎都没有涉及到我的情况。

我们想增加自己的用户后,接受会议。我们的代表有一个表格可以输入一些细节,如公司名称,增值税号码,联系数据(其中包含一个电子邮件字段),此数据保存在Firestore中。

在此之后,将电子邮件发送到所提供的电子邮件地址,所提供的电子邮件地址包含一个链接,该链接将用户带到带有密码和密码确认输入字段显示其电子邮件地址的表单。当提交此字段时,将创建用户。但是现在用户收到一封电子邮件,要求确认他们的电子邮件地址。我想,出于安全和隐私的原因,我无法将用户的电子邮件地址设置为已验证的地址。

我已经考虑过定制验证电子邮件,但这似乎不能解决我的问题。

在会议结束后使用随机密码创建用户似乎也不是一个解决方案,因为用户仍然需要在两个步骤中验证并重新设置密码。或者,在电子邮件验证之后,我可以以某种方式将其重定向到“设置密码”页面吗?这将是一个可以接受的解决办法。

是否有任何方法来实现上述所需的流程?

EN

回答 1

Stack Overflow用户

发布于 2022-01-15 03:32:35

作为一个通用工作流,您可以使用云函数和任何一个数据库系统来实现这一点。您还可以使用App检查来进一步保护此过程。

  1. 代表在其门户中添加基本用户信息。将数据安全地存储在您选择的数据库中。
  2. 向用户发送一封包含与代表添加的电子邮件链接的短期验证令牌的邀请电子邮件(一旦被邀请者的数据被添加到数据库中,就可以使用onCreate云函数生成并启动此功能)。这个令牌应该遵循一些标准,比如JWT,这样您就可以反序列化包含的电子邮件地址,或者可以交换底层的电子邮件地址。
  3. 当用户单击/复制链接到他们的浏览器时,向他们提供一个输入表单,询问所需的电子邮件和密码。注意:电子邮件字段应该是可编辑的!代表可能使用了新用户不想使用的电子邮件与您的平台。
  • 如果令牌仍然有效且未被消耗,请继续执行接下来的步骤。
  • 如果令牌已过期且未使用,请发送另一封电子邮件以重新确认其电子邮件并重新启动此步骤。
  • 如果令牌已经被消耗,请显示一个错误,不要继续。
  1. 通过可调用的云函数将电子邮件、密码和电子邮件令牌提交到后端。
  2. 使用函数在成功时返回的身份验证令牌对用户进行签名。否则显示错误。

在创建用户的可调用函数中:

  1. 确认请求来自您的应用程序(如果使用app )
  2. 确认电子邮件令牌的有效性
  3. 从与电子邮件令牌原始电子邮件地址链接的数据库中提取代表输入的数据。
  4. 使用这些数据、更新的电子邮件、新密码和emailVerified=true调用API接口
  5. 使用返回的UserRecord中的用户ID,在数据库中创建用户的配置文件数据,并创建一个自定义身份验证令牌
  6. 一旦创建了它们的数据并生成了令牌,就返回身份验证令牌作为请求的结果。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70718435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档