I want to remove the warning and be able to logout
https://link-bee-roan.vercel.app/
это ссылка
Я устанавливаю здесь файлы cookie
res.cookie('token', token, {
secure: true,
sameSite: 'none',
});
Мой корс
app.use(cors({
origin: "https://link-bee-roan.vercel.app",
credentials: true
}));
Во фронтенде
axios.defaults.withCredentials = true;
.
.
.
let response = await axios.post("https://linkbee-2.onrender.com/login", {
// let response = await axios.post("http://localhost:3000/login", {
userID, password
},{
withCredentials: true,
});
Я получаю third party cookie error
в консоли,
Однако я вижу файл cookie, но когда я нажимаю кнопку выхода из системы, файл cookie не удаляется,
Это серверный код выхода из системы,
router.post('/logout', (req, res) => {
console.info("this is the cookie :: " , req.cookies.token);
res.clearCookie('token').send(req.cookies.token);
});
Это связанная функция во внешнем интерфейсе
const handleLogout = async (e) => {
try {
let response = await axios.post(`${backendLink}/user/logout`);
console.info("this is the respose :: " , response);
// window.location.href = "/";
}
catch (error) {
console.info("error :: ", error);
}
}
Получение файла cookie, но файл cookie не удаляется даже после приведенного выше кода выхода из системы;
Существует расширение под названием «Cookie-Editor», с помощью которого я могу видеть сохраненные файлы cookie, поскольку получаю предупреждение: «Я не могу видеть файлы cookie, а также не могу их удалить, чтобы я мог выйти из системы».
Для этого вам не нужно расширение, вы уже можете проверить все, что хранится на вкладке «Хранилище» инструментов разработчика.
И это предупреждение о сторонних файлах cookie не имеет прямого отношения к вашей проблеме, это общее предупреждение.
Я использую расширение просто для удобства, как мне удалить предупреждение? подходят ли мои атрибуты файлов cookie для производства?
https://link-bee-roan.vercel.app
не является приемлемым значением для атрибута Domain
.
Даже после удаления предупреждение сохраняется.
Откуда взялось это «Привет» в заголовке ответа? Файлы cookie доставляются в начало заголовка под названием «set-cookie». Вам необходимо локализовать проблему, если куки-файлы не отправляются сзади или не анализируются спереди. Для этого откройте вкладку сети перед запуском let response = await axios.post(
запроса и проверьте, что отправляется по сети. Если заголовок set-cookie
есть, проблема в передней части. Если его нет - обратно их не отправляет. Как сказал Децезе, предупреждение и «не вижу файлов cookie» — это две отдельные проблемы.
Пожалуйста, проверьте изменения, файл cookie не удаляется после того, как я нажимаю кнопку выхода из системы.
Из документации :
Веб-браузеры и другие совместимые клиенты будут удалять файлы cookie только в том случае, если заданные параметры идентичны параметрам, заданным для res.cookie(), за исключением срока действия и maxAge.
Имея
res.cookie('token', token, {
secure: true,
sameSite: 'none',
});
чтобы установить файлы cookie, вам необходимо иметь
res.clearCookie('token', {
secure: true,
sameSite: 'none',
}).send();
чтобы отразить варианты.
При этом файлы cookie хранятся на клиенте, и в вашем конкретном случае (в обработчике router.post('/logout'
нет серверной логики, файл cookie не «только http», никаких других файлов cookie) вы можете удалить его (и фактически выйти из системы) прямо в браузере, сохранение по HTTP-запросу:
document.cookie = 'token; Max-Age=0 path=/; domain=...etc'
В вашем вопросе недостаточно контекста. Например, вы говорите о «расширении», но не объясняете, что это такое. В любом случае, developers.google.com/privacy-sandbox/3pcd может быть актуальным.