javascript - 发送到客户端后如何在标头中设置令牌
问题描述
我在 Node JS 中进行了登录。在 Postman 中进行了测试。完美运行。现在我需要将它集成到带有接口的客户端。在 POST API 中发送 jwt 令牌后,如何获取令牌并将其设置在客户端的标头?或者是否可以在服务器端设置标头?这是我尝试过的。我只是不知道该怎么做。
app.post('/auth', function(request, response) {
var username = request.body.username;
var password = request.body.pass;
if (username && password) {
db.query('SELECT * FROM user WHERE username = ?', [username], function(error, results, fields) {
if (results.length > 0) {
bcrypt.compare(password, results[0].password, function(err, res) {
if(res) {
jwt.sign({id: results[0].id}, 'sdfghwertyhbvcsdfghjk', (err, token) => {
response.json({token});
response.setHeader('Set-Cookie', ['item1=value1']);
});
// response.render(__dirname + "/views/bearer.html", {sessionToken: results3[0].token});
response.end();
} else {
response.send('Неправильно введены данные')
response.end();
}
})
} else {
response.send('Неправильно введены данные');
response.end();
}
});
} else {
response.send('Введите имя пользователя и пароль');
response.end();
}
});
function checkRights(request, result, next, rights) {
try {
var id = jwt.verify(request.headers.authorization, 'sdfghwertyhbvcsdfghjk').id;
db.query('SELECT * FROM user WHERE id = ?', [id] , function(error, results, fields) {
if (error) throw error;
if(results.length == 0) return false;
if(rights.indexOf(results[0].username) !== -1) {
request.user = results[0];
next()
} else
result.json({
error: "You are not allowed!!!"
});
});
} catch(e) {
result.json({
error: "Not authorized!!!"
});
}
}
function Authorized (request, res, next) {
checkRights(request, res, next, ['admin']);
}
app.get('/dashboard', [Authorized], function (req, res) {
res.send("OK");
res.end();
});
解决方案
推荐阅读
- c# - 如何添加多个消费者从 kafka 流中消费?
- python - 没有找到 numpy 的匹配分布(来自 torch==1.10)
- wordpress - 在 wordpress 中从多个数据库中搜索
- c++ - 带有抛出 ctor 的对象的单例 - 再次访问?
- spring - spring @JmsListener 非编译时替换
- android - 安装应用程序时永远不会调用 FirebaseMessagingService
- python-3.x - RDP 上的 Pyautogui
- excel - 用分隔符连接一个(!)行
- kotlin - 如何将Object类型的Observable设置为接口中方法的返回值
- asp.net-mvc - Internet Explorer 中的防伪令牌问题