mysql - 错误:发送后无法设置标头。(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");
}
});
});
解决方案
重定向发送一个 GET 请求。这是由浏览器控制的。浏览器不会自动将 Authorization: Bear 令牌头添加到请求中(导致页面失败)。
通常,对于重定向,您需要将安全详细信息加载到 cookie 中(例如,将 JWT 令牌放入 cookie 并从 cookie 中提取受保护的页面)
推荐阅读
- reactjs - 使用反应登录表单在 Spring Boot 中对用户进行身份验证
- android - 在 AccessibilityService 中获取 KEYCODE_HOME KeyEvent 需要什么 API 级别?
- java - 我在 windows 中使用 hadoop 时发生非法反射访问操作
- javascript - Break 语句未退出 JavaScript 中的所有嵌套循环
- visual-studio-2019 - 无法从 nuget 服务器找到 nuget 包
- api - Paypal Live API 泰国付款问题
- javascript - 他们在 Postgres 中查询日期的格式是什么?
- wpf - 使用 StackPanel 在用户定义的标题上修复 DataGrid 标题排序
- excel - 如何使用 .NET Core 中的 Syncfusion Xlsio 从 url 将图像添加到 XLSX 文件
- postgresql - Psql:使用 \copy from csv 导入日期列时出错