Я сейчас пытаюсь поднять и запустить фронт. Fe - это проект React с использованием VITE, все еще на локальном , и я использую React Query и Axio Решает, что файл cookie, который посылает бэкэнд (и он отправляет его), кажется, не сохраняется в браузере, несмотря ни на что. Я пробовал: < /p>
- И Firefox, и Chrome < /li>
Используя 127.0.0.1 < /code> вместо локального до < /code> - Сопоставление пользовательского домена app.something.something до 127.0.0.1 в файле hosts и доступа к нему таким образом
Подключение к локальной версии приложения, Instad of AWS One < /li>
Настройка настроек заголовков ответов в Nginx на сервере без конца < /li>
Добавление пакета cors < /code> в BE и настройка заголовков таким образом (я удалил конфигурацию Nginx, потому что он привел к дублирующим заголовкам, если у меня были оба) < /li>
< LI> выключение каждого возможного варианта безопасности для файлов cookie (, samesite , httponly )Код: Выделить всё
Secure
Вот как настройка бэкэнд-сервера < /p>
Код: Выделить всё
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
import express from "express";
import morgan from "morgan";
import cors from "cors";
import cookieParser from "cookie-parser";
import router from "./router";
import { createNewUser, signIn } from "./handlers/users";
import { protect } from "./modules/auth";
const app = express();
const corsOptions = {
origin: "http://localhost:5173", // I've changed this to match whatever way I'm accessing localhost
credentials: true,
};
app.use(cookieParser());
app.use(cors(corsOptions));
< /code>
Вот как я установил файл cookie на успешном входе в систему: < /pbr /> const token = createJWT(user);
res.cookie("token", token, {
httpOnly: true,
secure: false,
sameSite: "None",
});
res.json("Authentication success");
< /code>
И вот как я приношу его с Axios на Fe < /p>
export const authApi = axios.create({
baseURL: API_URL,
withCredentials: true,
});
authApi.defaults.headers.common["Content-Type"] = "application/json";
export const loginUser = async (user: LoginInput) => {
const response = await authApi.post("/signin", user);
return response.data;
};
< /p>
Но, похоже, он не сохранен (когда я перехожу в хранилище> cookie, оно пусто) и не отправляется обратно по последующим запросам, что приводит к 401 s, которые вы видите. Введите описание изображения здесь "src =" https://i.sstatic.net/fx0j8lvo.png "/>
Любая помощь очень ценится, я потратил два дня на это и понятия не имею, что еще попробовать.
Подробнее здесь: https://stackoverflow.com/questions/794 ... nodejs-api