Файл cookie не сохраняется в CORS браузера. ⇐ Html
-
Гость
Файл cookie не сохраняется в CORS браузера.
файлы cookie, которые я отправляю со своего бэкэнда на внешний интерфейс, не сохраняются, поскольку я использую CORS. Может кто-нибудь сказать мне, что именно мне нужно настроить? Решения, которые я получил из других тем, не работают!
Я отправляю учетные данные: «включите» в параметры выборки, я установил источник и учетные данные в CORS, а для файла cookie выбрал параметры httpOnly, SameSite none и Secure. Может ли кто-нибудь мне помочь?
Код интерфейса:
const handleLoginRequest = () => { вар requestData = { имя пользователя: имя пользователя, пароль: пароль } const requestOptions = { метод: 'POST', заголовки: { 'Content-Type': 'application/json' }, учетные данные: «включить», тело: JSON.stringify(requestData) }; fetch("https://emptychat-backend.onrender.com/login", requestOptions) .then(ответ => { если (ответ.ок) { ответ.json() .then(данные => { auth.signin(данные); перейти("/домой") }); } еще { ответ.текст() .then(данные => { setToastProps({header: "Упс. Это было schiefgelaufen!", body: data}) setShowToast (истина); }) } })}; Верхний код:
app.use(express.json()) app.use(cookieParser()) app.use(cors({ происхождение: «https://bidimdepru.de», учетные данные: правда })); // Авторизоваться app.post(`/login`, async (req, res) => { пытаться { // Eingaben extrahieren const {имя пользователя, пароль} = req.body; // Eingaben validieren if (!(имя пользователя && пароль)) { return res.status(400).send("Alle Eingaben werden benötigt!"); } // Проверка существования пользователя const user = await User.findOne({имя пользователя}); if (пользователь && (ожидайте bcrypt.compare(пароль, user.password))) { // Токен эрстеллен const токен = jwt.sign( { пользователь }, "мой_секретный_ключ", { истекаетВ: "2ч", } ); res.cookie("токен", токен, { httpOnly: правда, тот же сайт: 'нет', безопасный: правда, }) const parseUser = { _id: user._id, имя: имя пользователя.имя, электронная почта: user.email, имя пользователя: user.username, isAdmin: ложь, }; return res.status(200).json({auth: true, user: parseUser}); } else return res.status(400).send("Комбинация имени пользователя/пароля не используется."); } поймать (ошибиться) { console.log(ошибка); } }); Выборка заголовка ответа():
HTTP/3 200 ОК дата: среда, 20 сентября 2023 г., 18:01:59 GMT тип контента: приложение/json; кодировка = utf-8 cf-ray: 809bfa0e1a1e9134-FRA cf-cache-status: ДИНАМИЧЕСКИЙ доступ-контроль-разрешить-происхождение: https://bidimdepru.de etag: W/"7b-Nu6ENMtN5krrnmAfkNEMIODPsmQ" set-cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Il9pZCI6IjY1MDhhODEzNWJjZWI5ZDY2YTkxNzExMCIsIm5hbWUiOiJxZHF3ZCIsImVtYWlsIjoicWRx d2RxdyIsInVzZXJuYW1lIjoiQmlkaW0iLCJwYXNzd29yZCI6IiQyYiQxMCQucGFIcWw0TVlCTHlQNS5Nd2wyOTUuRzR3TcwTGVyUGZIY1dUM3lUYWtjaSIsImlzQWRtaW4iOmZhbHNlLCJfX 3YiOjB9LCJpYXQiOjE2OTUyMzI5MTksImV4cCI6MTY5NTI0MDExOX0.zx7vFbj70pI9w5ZC0n7e_Qcu5DePkLaUMkz_-L7JGx4; Путь=/; HTTPOnly; Безопасный; SameSite=Нет варьироваться: Accept-Encoding доступ-контроль-разрешить-учетные данные: правда x-powered-by: Экспресс x-render-origin-server: Рендеринг сервер: CloudFlare кодировка контента: br альт-SVC: h3=":443"; ма=86400 Выборка заголовка запроса():
POST/вход HTTP/3 Хост: пустойчат-backend.onrender.com Пользовательский агент: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0 Принимать: */* Accept-Language: de,en-US;q=0.7,en;q=0.3 Принять-кодирование: gzip, deflate, br Реферер: https://bidimdepru.de/ Тип контента: приложение/json Длина контента: 39 Происхождение: https://bidimdepru.de Альтернативное использование: пустойчат-backend.onrender.com Соединение: поддержание активности Sec-Fetch-Dest: пусто Sec-Fetch-Mode: cors Sec-Fetch-Site: межсайтовый ТЭ: трейлеры
файлы cookie, которые я отправляю со своего бэкэнда на внешний интерфейс, не сохраняются, поскольку я использую CORS. Может кто-нибудь сказать мне, что именно мне нужно настроить? Решения, которые я получил из других тем, не работают!
Я отправляю учетные данные: «включите» в параметры выборки, я установил источник и учетные данные в CORS, а для файла cookie выбрал параметры httpOnly, SameSite none и Secure. Может ли кто-нибудь мне помочь?
Код интерфейса:
const handleLoginRequest = () => { вар requestData = { имя пользователя: имя пользователя, пароль: пароль } const requestOptions = { метод: 'POST', заголовки: { 'Content-Type': 'application/json' }, учетные данные: «включить», тело: JSON.stringify(requestData) }; fetch("https://emptychat-backend.onrender.com/login", requestOptions) .then(ответ => { если (ответ.ок) { ответ.json() .then(данные => { auth.signin(данные); перейти("/домой") }); } еще { ответ.текст() .then(данные => { setToastProps({header: "Упс. Это было schiefgelaufen!", body: data}) setShowToast (истина); }) } })}; Верхний код:
app.use(express.json()) app.use(cookieParser()) app.use(cors({ происхождение: «https://bidimdepru.de», учетные данные: правда })); // Авторизоваться app.post(`/login`, async (req, res) => { пытаться { // Eingaben extrahieren const {имя пользователя, пароль} = req.body; // Eingaben validieren if (!(имя пользователя && пароль)) { return res.status(400).send("Alle Eingaben werden benötigt!"); } // Проверка существования пользователя const user = await User.findOne({имя пользователя}); if (пользователь && (ожидайте bcrypt.compare(пароль, user.password))) { // Токен эрстеллен const токен = jwt.sign( { пользователь }, "мой_секретный_ключ", { истекаетВ: "2ч", } ); res.cookie("токен", токен, { httpOnly: правда, тот же сайт: 'нет', безопасный: правда, }) const parseUser = { _id: user._id, имя: имя пользователя.имя, электронная почта: user.email, имя пользователя: user.username, isAdmin: ложь, }; return res.status(200).json({auth: true, user: parseUser}); } else return res.status(400).send("Комбинация имени пользователя/пароля не используется."); } поймать (ошибиться) { console.log(ошибка); } }); Выборка заголовка ответа():
HTTP/3 200 ОК дата: среда, 20 сентября 2023 г., 18:01:59 GMT тип контента: приложение/json; кодировка = utf-8 cf-ray: 809bfa0e1a1e9134-FRA cf-cache-status: ДИНАМИЧЕСКИЙ доступ-контроль-разрешить-происхождение: https://bidimdepru.de etag: W/"7b-Nu6ENMtN5krrnmAfkNEMIODPsmQ" set-cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Il9pZCI6IjY1MDhhODEzNWJjZWI5ZDY2YTkxNzExMCIsIm5hbWUiOiJxZHF3ZCIsImVtYWlsIjoicWRx d2RxdyIsInVzZXJuYW1lIjoiQmlkaW0iLCJwYXNzd29yZCI6IiQyYiQxMCQucGFIcWw0TVlCTHlQNS5Nd2wyOTUuRzR3TcwTGVyUGZIY1dUM3lUYWtjaSIsImlzQWRtaW4iOmZhbHNlLCJfX 3YiOjB9LCJpYXQiOjE2OTUyMzI5MTksImV4cCI6MTY5NTI0MDExOX0.zx7vFbj70pI9w5ZC0n7e_Qcu5DePkLaUMkz_-L7JGx4; Путь=/; HTTPOnly; Безопасный; SameSite=Нет варьироваться: Accept-Encoding доступ-контроль-разрешить-учетные данные: правда x-powered-by: Экспресс x-render-origin-server: Рендеринг сервер: CloudFlare кодировка контента: br альт-SVC: h3=":443"; ма=86400 Выборка заголовка запроса():
POST/вход HTTP/3 Хост: пустойчат-backend.onrender.com Пользовательский агент: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0 Принимать: */* Accept-Language: de,en-US;q=0.7,en;q=0.3 Принять-кодирование: gzip, deflate, br Реферер: https://bidimdepru.de/ Тип контента: приложение/json Длина контента: 39 Происхождение: https://bidimdepru.de Альтернативное использование: пустойчат-backend.onrender.com Соединение: поддержание активности Sec-Fetch-Dest: пусто Sec-Fetch-Mode: cors Sec-Fetch-Site: межсайтовый ТЭ: трейлеры
Мобильная версия