验证电子邮件并注册用户后,如何在电子邮件上生成链接后获取令牌?

Posted

技术标签:

【中文标题】验证电子邮件并注册用户后,如何在电子邮件上生成链接后获取令牌?【英文标题】:How to get token after link generated on email after verifying email and register a user? 【发布时间】:2022-01-19 11:05:21 【问题描述】:

当用户注册时,会向该电子邮件发送一个链接以进行验证,当该用户单击该链接时,用户将获得验证并打开一个新选项卡,其中提供电子邮件验证消息,然后将生成 JWT 令牌单击该链接后,我如何获取令牌,因为我有 token_generate(GET api) 的 api。

【问题讨论】:

【参考方案1】:

根据我的经验,这应该是过程:

    用户填写注册表并提交 调用后端 API,后端 API 在数据库中针对电子邮件创建一个临时验证令牌。例如这样的:

  email: 'ahsanayaz@something.com',
  verificationToken: '123123123'

    然后后端通过如下链接向用户发送电子邮件: https://yourfrontendapp.com/verify-user?verificationToken=123123123 当用户单击电子邮件中的链接时,用户基本上会在前端应用程序中打开一个页面。前端应用程序从当前 URL 中提取出verificationToken 查询参数,并在另一个 API 调用中将其发送到后端。 后端接收令牌并在数据库中验证它(参见步骤 2)。后端验证后,后端会在数据库中创建用户,并生成 JWT 令牌并在 API 调用的响应中发回用户和 JWT 令牌。 用户仍在页面https://yourfrontendapp.com/verify-user?verificationToken=123123123 上,在第 4 步中进行 API 调用。应用程序现在从验证 API 调用中接收回 JWT 令牌和用户数据,您保存 JWT 令牌和用户在 localStorage 或其他东西中,并更改前端应用的状态以反映用户现在已创建并登录。

【讨论】:

以上是关于验证电子邮件并注册用户后,如何在电子邮件上生成链接后获取令牌?的主要内容,如果未能解决你的问题,请参考以下文章

电子邮件链接身份验证。如何使用动态链接注册?

用户注册后如何在 aws cognito 中自动验证电子邮件。稍后状态后在 Cognito 中验证电子邮件

Laravel 8:我如何在注册后验证用户的电子邮件地址而无需提供登录信息?

Django 实现网站注册用户邮箱验证功能

如何在进入主页之前验证电子邮件

用户注册后如何发送验证/确认电子邮件