【问题标题】:How to redirect url after setting cookie using express?使用express设置cookie后如何重定向url?
【发布时间】:2018-08-09 02:06:53
【问题描述】:

这是我在快速路由器中的登录代码:

if (password === realpassword) {
    res.cookie('thecookie', 'somethingliketoken');
    res.redirect(302, '/somepages');
} else {
    res.status(403).end();
}

我想设置 cookie 以便/somepages 可以识别谁是这个用户。

但我收到错误Error: Can't set headers after they are sent.

我已经尝试过return res.redirect(302, '/somepages');。对/somepages 的查询已正确发送,但页面仍保留在我的/login 中。

请帮忙。

【问题讨论】:

  • 我尝试了相同的 sn-p 代码,它像魅力一样重定向,我需要你的代码来调试
  • 问题是你不能在一个路由上同时发送两个响应。
  • @NikhilSavaliya res.cookie() 只是设置 cookie,而不是发送响应

标签: javascript node.js express cookies login


【解决方案1】:

我想我明白了。 我使用 AJAX 发布了用户名和密码,因此 302 重定向被发送到 AJAX 查询,是的,它成功重定向但 它是针对 AJAX 查询,而不是针对页面,这就是为什么第二个查询是已收到,但页面未更改。

          this.$http({
                url: '/userLogin',
                method: 'post',
                data: {
                    username: this.username,
                    password: SHA3(this.password, {outputLength: 256}).toString(),
                },
            }).then(res => {
                console.log(res);
                this.hintColor = '#00bdd8';
                this.hint = 'success';
            }).catch(err => {
                this.hintColor = 'red';
                if (err.response.status == 403) {
                    this.hint = 'mismatch';
                } else {
                    this.hint = '500err';
                }
            });

我觉得可能不应该这样用。

将改用window.location

如果还有其他方法,非常感谢您的帮助。

【讨论】:

    【解决方案2】:

    我在我的登录帖子请求中做了类似的事情,它对我有用。

    app.post('/index',function(req,res){
      var uname = req.body.Username;
      var pwd = req.body.Password;
      if(uname && pwd === 'admin'){
        var token = jwt.sign( { username: uname }, 'q1W2e3R4t5Y6u7I8o9P',{ expiresIn: '1m' }
          );
        res.cookie('auth',token);
        res.redirect('home');
        console.log('Authentication is done successfully.....');
        console.log(token);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 2010-10-11
      • 2023-02-25
      • 1970-01-01
      相关资源
      最近更新 更多