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

Я использовал 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-hooks, и настроитьwithCredentialsЯ использовал этот код:

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’)

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: