首页 > 解决方案 > 服务器端电子邮件验证:谷歌浏览器转换我的 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);

        });
      }
    })
}); 

标签: node.jsgoogle-chromeexpress

解决方案


推荐阅读