node.js - 如何使用 express/node 确认电子邮件地址?

标签 node.js express

我正在尝试为用户构建电子邮件地址验证,以验证他们的电子邮件是真实的。我应该使用什么包来确认用户的电子邮件地址?到目前为止,我使用 Mongoose 和 express

代码示例

var UserSchema = new mongoose.Schema({
    email: { type: String, unique: true, lowercase: true }
    password: String
});

var User = mongoose.model('User', UserSchema);

app.post('/signup', function(req, res, next) {
   // Create a new User
   var user = new User();
   user.email = req.body.email;
   user.password = req.body.password;
   user.save();
});

在 app.post 代码中,我如何确认用户的电子邮件地址?

最佳答案

您要查找的内容称为“帐户验证”或“电子邮件验证”。有很多 Node 模块可以执行此操作,但原理如下:

  • 你的用户模型应该有一个 active 属性,默认情况下是 false
  • 当用户提交有效的注册表单时,创建一个新用户(他的 active 最初将是 false)
  • 使用加密库创建一个长随机字符串(通常 128 个字符即可)并将其存储在您的数据库中,并引用用户 ID
  • 向提供的电子邮件地址发送一封电子邮件,其中包含作为指向服务器上路由的链接的一部分的哈希
  • 当用户点击链接并点击您的路线时,检查 URL 中传递的哈希
  • 如果数据库中存在哈希,则获取相关用户并将其active属性设置为true
  • 从数据库中删除哈希,不再需要它

您的用户现已通过验证。

关于node.js - 如何使用 express/node 确认电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39092822/

相关文章:

angularjs - 如何将 AngularJS 中的文件和表单数据发送到 Node.js 服务器?

node.js - 如何在 Node.js/Express.js 中将中间件放入它自己的文件中

node.js - Docker容器中的Node.js和React

arrays - forEach如何将多条数据保存到MongoDB中

javascript - Express 路由器未安装

javascript - 如何从另一个 .js 文件添加 Express 路由端点?

node.js - 如何链接到 node_modules 中的 JavaScript 文件?

javascript - 仅在我的 ubuntu 服务器上从 soundcloud api 收到 500 错误

javascript - Auth0 将自定义声明添加到用户配置文件

node.js - 创建 Sequelize 关系/关联