Я использовал 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/”