axios进行请求的重发,请求/响应拦截,Token刷新

请求拦截

// 进行请求的拦截
axios.interceptors.request.use(
	// 正常拦截
	request => {
	 // doSomethings
	},
	// 发生错误
	error => {
	  // error handle
	});

响应拦截

// 进行响应的拦截
axios.interceptors.response.use(
	// 正常拦截
	response => {
	 // doSomethings
	},
	// 发生错误
	error => {
	  // error handle
	});

刷新Token并重发请求

例如:在响应中需要进行Token的校验,失效后进行Token的刷新并重发请求
请求重发的注意点是,使用响应里的config作为参数进行重发

axios.interceptors.response.use(
	response => {
		// 判断是否需要Token刷新
		if (...) {
			// 刷新Token(可以使用同步操作)
			...
			// 将新的Token设置到axios的默认请求头
			axios.defaults.headers.common['token'] = newToken;
			
			// 将新的Token设置到重发的请求头
			response.config.headers.token = newToken;
			
			// 请求重发
			return axios.request(response.config);
		}
		
	});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章