如何对每个Axios请求强制使用凭据

我正在使用Axios与设置JWT令牌的API进行交互。

该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教程: