首页 > 解决方案 > 错误:发送后无法设置标头。(jwt 身份验证)

问题描述

我是新的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");
		}
	});
});

标签: mysqlnode.jsjwt

解决方案


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

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


推荐阅读