Skip to content

useFetchAuth

Что нужно для правильной работы функции

  • Выставить значение csrftoken в cookie.
  • Настроить локальный токен в runtimeConfig и .env.

Настройка локального токена

Для начала необходимо добавить параметр в runtimeConfig в dev-режиме.

ts
$development: {
  runtimeConfig: {
    public: {
      authToken: undefined
    }
  }
}

После чего нужно добавить соответствующий токен в .env.

dotenv
NUXT_PUBLIC_AUTH_TOKEN=<token>

Функция для работы с эдпоинтами с авторизацией. В ней используется useFetch, поэтому используется она один в один.

Решает 3 задачи:

  • Проксит cookie клиента в серверные запросы при SSR.
  • Добавляет заголовок X-CSRFToken со значением из cookie csrftoken.
  • В dev-режиме добавляет заголовок Authorization со значением из .env.

WARNING

Если cookie будут переданы в серверный запрос, то функция не проксит их на клиент.

Соответственно, если есть задача при первом входе пользователя на страницу выставить ему cookie, нужно решать эту задачу отдельно, и делать запрос на клиенте.

Параметры

  • url - URL для запроса
  • options - параметры запроса

Возвращаемый объект

Функция возвращает тоже самое, что и useFetch.

Использование

Функция используется один в один как useFetch.

ts
const { data, error } = await useFetch<Response>("/auth/csrf/", {
  baseURL: useRuntimeConfig().public.apiBase
})