Cómo forzar las credenciales a cada solicitud de Axios

Estaba usando Axios para interactuar con una API que configuraba un token JWT.

La API devolvió el token en una cookie y rápidamente pensé que necesitaba configurarwithCredentials: trueen las opciones de Axios:

import axios from 'axios'

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

De lo contrario, la cookie no se guardaría.

También necesitaba configurarlo para cada otra solicitud que hice, para enviar el token JWT al servidor:

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

Ahora, está bien para algunas solicitudes, pero para muchas, probablemente le gustaría usar una configuración general.

Puedes hacerlo usando elcreate()para crear una nueva instancia de Axios, luego la usará en sus solicitudes:

import axios from 'axios'

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

instance.get(API_SERVER + ‘/todos’)

También es común agregar unbaseURLpropiedad:

import axios from 'axios'

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

instance.get(‘todos’)

En React uséaxios-hooksy configurarwithCredentialsUsé este código:

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


Más tutoriales de js: