#node.js #express
#node.js #экспресс
Вопрос:
У меня есть следующий api, созданный с использованием express / node, но когда я пытаюсь получить к нему доступ из браузера «Укажите SameSite = Нет и защищенный, если файл cookie должен быть отправлен в межсайтовых запросах. Это позволяет использовать сторонним пользователям.» это предупреждение было показано в консоли, и данные не были получены, api выглядит следующим образом
let express = require("express");
let app = express();
let bodyparser = require("body-parser")
let jwt = require("jsonwebtoken");
const student = require('./student')
app.use(bodyparser.json)
//used to authenticate the user and create the token
app.get("/auth",(req,res)=>{
console.log("sdsdsds")
var token = jwt.sign({email: user.email}, 'hubDemo', {expiresIn: '1h'});
res.send({token})
})
//fetches the student data and returns
app.get("/student",(req,res)=>{
console.log("tst");
return res.status(200).json({
ok: true,
data: student
});
});
app.listen(3000,()=>{console.log("listening")})
что я должен изменить, чтобы это заработало?
Ответ №1:
Таким образом, в вашем данном сценарии никакие файлы cookie не подписываются, которые мы используем с вашим express api. Однако, в случае ваших токенов, я бы настоятельно рекомендовал обратиться к http-only cookies
, а не к localStorage. Это предотвращает любую настройку токена на стороне клиента, в то время как localStorage более подвержен атакам. Но в зависимости от вашего исходного URL-адреса, простое указание свойства SameSite при создании файла cookie должно устранить предупреждение.
Комментарии:
1. может ли быть так, что синтаксический анализатор тела не был установлен, потому что после установки проблема, похоже, устранена, и вы будете работать над предложением cookie, поскольку просто изучаете новые вещи, спасибо