我正在尝试为用户构建电子邮件地址验证,以验证他们的电子邮件是真实的。我应该使用什么包来确认用户的电子邮件地址?到目前为止,我使用 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/