我正在尝试使用express-session和Redis作为节点js中的存储来实现电子邮件验证系统。这就是我要尝试的方式
1-使用加密库创建唯一令牌。
2-将唯一令牌保存到Redis存储中的该电子邮件地址,maxAge为1小时。
3-验证时,它将检查令牌是否与redis中存储的关联电子邮件地址匹配,如果是,则确认电子邮件。
现在如何在快速会话中设置动态密钥,以便该密钥可以是电子邮件地址?我可以设置动态值,但不能设置动态键。
我尝试使用req.session.key
,但它只需要静态密钥。
这是我的代码
const sendemailverification = function(req,res){
var emailaddress = req.body.emailaddress;
var uniquetoken = crypto.randomBytes(64).toString('hex');
req.session.emailaddress = emailaddress;
req.session.verificationtoken = uniquetoken;
req.session.cookie.maxAge = 1000 * 60 * 60 * 24;
useremailverification.sendemail(emailaddress,uniquetoken)
.then(function(result){
res.send(result)
})
.catch(function(error){
res.send(error);
})
}
代替设置
{abc@gmail.com
:<token>
},它会设置
{emailaddress
:<token>
}