Рубрики
Без рубрики

Как принудительно вводить учетные данные для каждого запроса Axios

Я использовал Axios для взаимодействия с API, который устанавливал токен JWT. API вернул токен в файле cookie, и я быстро понял, что мне нужно установить значение withCredentials: true в параметрах Axios: импорт axios из axios.post ‘axios'(API_SERVER + ‘/логин’, {адрес электронной почты, пароль}, {Значение значения: истина}) В противном случае файл cookie не был бы сохранен. Мне также нужно было установить его для каждого другого запроса, который я сделал, чтобы отправить токен JWT на сервер:

Я использовал Axios для взаимодействия с API, который устанавливал токен JWT.

API вернул токен в файле cookie, и я быстро понял, что мне нужно установить withCredentials: true в параметрах Axios:

import axios from 'axios'

axios.post(API_SERVER + '/login', { email, password }, { withCredentials: true })

В противном случае файл cookie не был бы сохранен.

Мне также нужно было установить его для каждого другого запроса, который я сделал, чтобы отправить токен JWT на сервер:

axios.get(API_SERVER + '/todos', { withCredentials: true })

Теперь это нормально для нескольких запросов, но для многих вы, вероятно, захотите использовать общую конфигурацию.

Вы можете сделать это с помощью метода create() для создания нового экземпляра Axios, который затем вы будете использовать в своих запросах:

import axios from 'axios'

const instance = axios.create({
  withCredentials: true
})

instance.get(API_SERVER + '/todos')

Также часто добавляется baseUrl собственность:

import axios from 'axios'

const instance = axios.create({
  withCredentials: true,
  baseURL: API_SERVER
})

instance.get('todos')

В React я использовал axios-крючки , а для настройки с идентификаторами Я использовал этот код:

import axios from 'axios'
import useAxios, { configure } from 'axios-hooks'

const instance = axios.create({
  withCredentials: true,
  baseURL: API_SERVER,
})

configure({ instance })

const [{ data, loading, error }, refetch] = useAxios('todos')

Оригинал: “https://flaviocopes.com/axios-credentials/”