如何通过使用 NodeJS 发送验证码来验证用户电子邮件?

How to authenticate user email by sending a verification code using NodeJS?

我想在注册时将验证码发送到用户注册的邮箱。我找到的所有教程都使用 sendgrid API.

发送验证 link

有什么方法可以使用验证码来完成吗?

你可以自己做。

  • 在数据库的用户模式中,您需要一个用于 isAuthenticated 的布尔值位置和一个用于授权代码的字符串位置。
  • 生成一些代码,如果您正在使用 NPM 的 nodejs UUID 包是一个很棒的包。
  • 当用户注册时 - 默认保存 false,生成代码并:
    1. 存入数据库中的用户
    2. 向用户发送一封带有 link 的邮件到您服务器上的端点,例如 /:userid/:authcode
  • 在服务器上 - 构建此端点,select 数据库中的用户通过您在参数中获得的 ID,检查您在参数中获得的代码是否与保存在您刚刚 selected 的用户,如果是 - 将用户更新为 true
  • 最后一件事 - 登录时 - 检查身份验证是否为真,如果不是 - 发送特定错误,以便您可以在客户端上捕获它并显示详细的错误消息