Задать вопрос
@the-loker

Nuxt3 server setCookie — не изменяется значение куки, в чем может быть проблема?

Есть такая реализация проксирования запросов к api, по непонятным мне причинам не изменяется значение куки которая приходит в response, но ее параметры (например httpOnly) изменяются.

import { joinURL } from 'ufo';
import { parse as parseCookies } from 'set-cookie-parser';

export default defineEventHandler((event) => {
  const { API_URI } = useRuntimeConfig();
  const path = event.path.replace(/^\/api\//, '');
  const url = joinURL(API_URI, path);

  return proxyRequest(event, url, {
    onResponse(event, response) {
      const combinedCookie = response.headers.get('set-cookie');

      if (combinedCookie) {
        const cookies = parseCookies(combinedCookie);

        cookies.forEach((cookie) => {
          const { name, value, ...options } = cookie;

          setCookie(event, name, value, {
            path: options.path,
            expires: options.expires,
            maxAge: options.maxAge,
            domain: options.domain,
            secure: options.secure || false,
            httpOnly: options.httpOnly || false,
          });
        });
      }
    },
  });
});
  • Вопрос задан
  • 276 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@the-loker Автор вопроса
Свою проблему решил данным методом
const event = useRequestEvent();

const res = await $fetch<{ accessToken: string }>('/api/auth/refresh', {
	method: 'POST',
	headers: useRequestHeaders(['cookie']),
	onResponse({ response }) {
		const cookies = response.headers.getSetCookie();

		if (cookies.length) {
			cookies.forEach((cookie) => {
				if (event) {
					appendResponseHeader(event, 'set-cookie', cookie);
				}
			});
		}
	},
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы