【问题标题】:Error: Can't set headers after they are sent.(jwt authentication)错误:发送后无法设置标头。(jwt 身份验证)
【发布时间】:2019-03-01 15:10:59
【问题描述】:

我是新的nodejs。发送 jwt 后我无法重定向到受保护的页面。这里我想做的是在从数据库中获取用户详细信息后,我正在创建一个 jwt.但在那之后我想重定向到一个受保护的页面。

app.post('/Signin', function (req, res){
	var post = req.body;
	var sql = "SELECT id,name FROM `users` WHERE `name`='"+post.uname+"'and`password`='"+post.pass+"'";
	con.query(sql,function(err,result,col){
		if(result.length)
		{
			var re = JSON.parse(JSON.stringify(result[0]));
			var token = jwt.sign(re,'ssshhh',{expiresIn : 1440});
			res.json({
        			error: false,
       				 message: 'Validation successful!',
        			token: token
   				 });
			console.log("Successful login");
			res.redirect("Protected");
		}
		else
		{
		console.log("Wrong Details");
		res.redirect("Signin");
		}
	});
});

【问题讨论】:

    标签: mysql node.js jwt


    【解决方案1】:

    重定向发送一个 GET 请求。这是由浏览器控制的。浏览器不会自动在请求中添加 Authorization: Bear 令牌头(导致页面失败)。

    通常,对于重定向,您需要将安全详细信息加载到 cookie 中(例如,将 JWT 令牌放入 cookie 并从 cookie 中提取受保护的页面)

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 2018-06-08
      • 2018-06-29
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多