Comment forcer les informations d'identification à chaque demande Axios

J'utilisais Axios pour interagir avec une API qui définissait un jeton JWT.

L'API a renvoyé le jeton dans un cookie et j'ai rapidement compris que je devais définirwithCredentials: truedans les options Axios:

import axios from 'axios'

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

Sinon, le cookie ne serait pas enregistré.

J'avais également besoin de le définir pour chaque autre demande que je faisais, pour envoyer le jeton JWT au serveur:

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

Maintenant, c'est ok pour quelques demandes, mais pour beaucoup, vous aimeriez probablement utiliser une configuration générale.

Vous pouvez le faire en utilisant lecreate()méthode pour créer une nouvelle instance Axios, vous l'utiliserez ensuite dans vos requêtes:

import axios from 'axios'

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

instance.get(API_SERVER + ‘/todos’)

Il est également courant d'ajouter unbaseURLbiens:

import axios from 'axios'

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

instance.get(‘todos’)

Dans React j'ai utiliséaxios-hooks, et pour configurerwithCredentialsJ'ai utilisé ce code:

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

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: