Одинаковый сайт Express / Node js api = Нет и защищен от файлов cookie, при попытке доступа к api отображается предупреждение

#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, поскольку просто изучаете новые вещи, спасибо