refreshToken

import store from '@/store'
import config from './config.js'
import Base64 from './base64.js'
// H5版本
// #ifdef H5
import Fly from "flyio/dist/npm/fly"
// #endif
//微信小程序和APP版本
// #ifndef H5
import Fly from "flyio/dist/npm/wx"
// #endif
const request = new Fly();
let base64 = new Base64();
console.log(request)
request.interceptors.request.use((request) => {
	request.baseURL = config.baseURL;
	const token = store.state.user.token;
	request.headers['Authorization'] = `Basic ${base64.encode(`${config.clientId}:${config.clientSecret}`)}`;
	if (token) {
		request.headers['Blade-Auth'] = 'bearer ' + token
	} else {
		request.headers['Tenant-Id'] = config.tenantId
	}
	if (request.method === 'POST' && request.headers['Content-Type'] !== 'multipart/form-data') {
		uni.showLoading({});
		request.body = {
			...request.body,
			_t: Date.parse(new Date()) / 1000
		}
	} else if (request.method === 'GET') {
		request.params = {
			_t: Date.parse(new Date()) / 1000,
			...request.params
		}
	}
	return request
})
let isRefreshing = false;
let requests = [];
request.interceptors.response.use(response => {
	uni.hideLoading()
	return response.data
}, error => {
	uni.hideLoading()
	if (error.response.data.code == 401) {
		if (!isRefreshing) {
			isRefreshing = true
			store.dispatch('refreshToken').then(res => {
				if (res.access_token) {
					requests.forEach(cb => {
						console.log(cb)
						cb()
					})
					requests = []
				}else{
					
				}
			})
			 isRefreshing = false
		} else {
			return new Promise((resolve) => {
				requests.push(() => {
					resolve(request())
				})
			})
		}
	}
})

export default request
export {
	request
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值