使用快递设置cookie后如何重定向url?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用快递设置cookie后如何重定向url?相关的知识,希望对你有一定的参考价值。
这是我在快递路由器中的登录代码:
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
。
请帮忙。
答案
我想我得到了理由。我使用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
代替。
如果还有其他方式,我非常感谢您的帮助。
另一答案
我在登录帖子请求中做了类似的事情,并为我工作。
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);
}
});
以上是关于使用快递设置cookie后如何重定向url?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Passport 进行社交身份验证登录后如何重定向到个人资料页面? (角度,快递,护照,jwt)
nginx location 块捕获一个值并设置cookie,如果它不为空,则重定向到新的URL
将 set-cookie 标头发送到 node.js 中的重定向 url