node.js - 服务器端电子邮件验证:谷歌浏览器转换我的 URL,包括令牌
问题描述
我已经使用 MERN(MongoDB、Express、React、Node.js)堆栈实现了一个注册页面。
当用户填写注册表单时,会向用户发送一封带有电子邮件验证令牌的电子邮件。
要完成注册过程,用户单击 URL 以验证他们的电子邮件。
我想知道的是,当我单击 URL 时,请求会转到两个 URL(原始地址 - http://localhost:5000/api/users/verify?token=randomstrig和修改后的地址 - https://www. google.com/url?q=http://localhost:5000/api/users/verify?token%3DfE2LHiOHqbZmfDTHtD1db9qumgQpUoZZ&source=gmail&ust=1549531956198000&usg=AFQjCNEuNxOv5c9SOFPjDr-AVBiCX7uUPw )
我想知道为什么浏览器会转换 URL 并请求它们。
以下代码是处理 URL GET 请求的 node.js 代码。
router.get('/verify',(req, res , next)=>{
const urlToken = req.query.token;
Token.findOne({token: urlToken})
.exec((err, token)=> {
if (err) next(err)
if (!token){
res.send({message: 'there is no token'})
}
else{
User.update({_id: token._id},{ $set: {verified: true}})
.exec((err,user)=>{
if (err) next(err);
console.log(user);
});
}
})
});
解决方案
推荐阅读
- javascript - 如何在 HomeScreen 等屏幕之间导航数据到 AddtoCart 屏幕并在 Hooks 中添加数据
- r - 使用仪表板中的下拉菜单切换报告时出现未知列错误
- javascript - 对值的空值检查在 Javascript 中不起作用
- javascript - 如何为仅有条件定义的对象强制 IntelliSense?
- python - 如何使用python(BeautifulSoup)从代码中提取以下src(iframe)
- r - 从开始/结束坐标创建折线并组合属性数据
- javascript - 从函数参数中获取解构对象作为单个对象
- python - 尝试使用python在mysql上异步调用存储过程,无法这样做
- python - Python 生成错误的字典哈希
- javascript - 如何通过向查看器添加叠加层来创建自定义按钮?