Клиент не отправляет некоторые secure cookie

Рейтинг: 0Ответов: 0Опубликовано: 03.04.2023

После 'авторизации' сервер присылает мне ответ с тремя httpOnly куками, но при попытке отправить ему следующий запрос, включающий эти куки он почему то отправляет только куки с сессией, а куки с токенами игнорирует. С чем это может быть связано?

Ответ от сервера посте 'авторизации':

access-control-allow-credentials: true access-control-allow-origin: http://localhost:3000 Connection: keep-alive content-length: 26 content-type: application/json; charset=utf-8 Date: Mon, 03 Apr 2023 13:54:30 GMT Keep-Alive: timeout=72 set-cookie: sessionId=; Domain=0.0.0.0; Path=/; Expires=Mon, 03 Apr 2023 13:54:30 GMT; HttpOnly set-cookie: access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NDI4YjNiNDgzMDRmNDZiMGM2ZTI3NjIiLCJzZXNzaW9uVG9rZW4iOiIiLCJpYXQiOjE2ODA1MzAwNjl9.ZBOz7sGhijnKYskhMOrPEatOFQee3XNTNhgFSem9KWU; Domain=0.0.0.0; Path=/; Expires=Mon, 03 Apr 2023 13:55:29 GMT; HttpOnly set-cookie: refresh-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uVG9rZW4iOiIiLCJpYXQiOjE2ODA1MzAwNjl9.TwBU5pM0Bdd6JQdciadWDw21ONY4xZSUh6Yt6FpMHZ4; Domain=0.0.0.0; Path=/; Expires=Mon, 10 Apr 2023 13:54:29 GMT; HttpOnly set-cookie: sessionId=AfSQmruYXOC-e_HEDJ9rrnpW0Gaa4WP9.r5tTx72UOz0U2%2F0J5UVi01i6iZ4u7dnjgG5V6OO8e%2BM; Path=/; HttpOnly vary: Origin

Следующий запрос к серверу:

Accept: application/json, text/plain, / Accept-Encoding: gzip, deflate, br Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Access-Control-Allow-Origin: * Connection: keep-alive Cookie: sessionId=KGJYo6fH8N_ZcuxxfIX01Cmzoi1aOdw5.swGXHnbgAZ704EjGcfbrRyjrwEVcLP2P8isAukr0lB8 Host: localhost:8001 Origin: http://localhost:3000 Referer: http://localhost:3000/ sec-ch-ua: "Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-site User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36

Запрос отправляю с с помощью axios c флагом withCredentials: true Декларация фетчера:

export function useAxiosGetFetcher ({
  protocol = 'http',
  host = HOST,
  port = PORT,
  api = 'api',
  route = 'me',
  options = { 
    headers: {
      'Content-Type': 'application/json',
      'Access-Control-Allow-Origin': '*',
      
    },
    withCredentials: true
}} = {}) {

  const fetcher = async () => {
      const url = `${protocol}://${host}:${port}/${api}/${route}`
      return axios
          .get(url, options)
              .then(response => response.data)
               
  } 
  return {fetcher}
}

Использование axios фетчера:

export function useUser() {

    const api = 'api/users'
    const route = 'me'
    const key = `${api}/${route}`

    const {fetcher} = useAxiosGetFetcher({ api, route })

    const { data: user, 
        error,
        isValidating,
        mutate } = useSWR<User>(key, fetcher)

    return {user, error, isValidating, mutate}
}

Ответы

Ответов пока нет.