|
@@ -1,12 +1,9 @@
|
|
|
import Request from 'luch-request'
|
|
import Request from 'luch-request'
|
|
|
|
|
|
|
|
-let baseURL = 'http://192.168.1.48:2366/'
|
|
|
|
|
-// let baseURL = 'http://192.168.1.244:1888/api/'
|
|
|
|
|
// let baseURL = 'https://ldt.guosen-fumao.cn/api/'
|
|
// let baseURL = 'https://ldt.guosen-fumao.cn/api/'
|
|
|
|
|
+let baseURL = 'http://192.168.1.168:2366/'
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-let tokenUrl = baseURL +
|
|
|
|
|
- "blade-auth/oauth/token?tenantId=000000&password=21232f297a57a5a743894a0e4a801fc3&username=admin"
|
|
|
|
|
|
|
+let refreshTokenUrl = baseURL + "blade-auth/oauth/token"
|
|
|
|
|
|
|
|
//获取token
|
|
//获取token
|
|
|
const getTokenStorage = () => {
|
|
const getTokenStorage = () => {
|
|
@@ -16,6 +13,20 @@ const getTokenStorage = () => {
|
|
|
} catch (e) {}
|
|
} catch (e) {}
|
|
|
return token
|
|
return token
|
|
|
}
|
|
}
|
|
|
|
|
+//缓存token信息
|
|
|
|
|
+const cacheToken = (data) => {
|
|
|
|
|
+ let tokenInfo = {
|
|
|
|
|
+ accessToken: data.access_token,
|
|
|
|
|
+ //提前200秒过期
|
|
|
|
|
+ expiresIn: new Date().getTime() + (data.expires_in - 200) * 1000,
|
|
|
|
|
+ refreshToken: data.refresh_token,
|
|
|
|
|
+ tenantId: data.tenant_id,
|
|
|
|
|
+ nickName: data.nick_name
|
|
|
|
|
+ }
|
|
|
|
|
+ uni.setStorageSync('token', data.access_token)
|
|
|
|
|
+ uni.setStorageSync('tokenInfo', tokenInfo)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const http = new Request()
|
|
const http = new Request()
|
|
|
http.setConfig((config) => {
|
|
http.setConfig((config) => {
|
|
|
/* 设置全局配置 */
|
|
/* 设置全局配置 */
|
|
@@ -25,10 +36,12 @@ http.setConfig((config) => {
|
|
|
}
|
|
}
|
|
|
return config
|
|
return config
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
http.interceptors.request.use((config) => {
|
|
http.interceptors.request.use((config) => {
|
|
|
/* 请求之前拦截器。可以使用async await 做异步操作 */
|
|
/* 请求之前拦截器。可以使用async await 做异步操作 */
|
|
|
config.header = {
|
|
config.header = {
|
|
|
...config.header,
|
|
...config.header,
|
|
|
|
|
+ Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
|
|
|
"Blade-Auth": getTokenStorage()
|
|
"Blade-Auth": getTokenStorage()
|
|
|
}
|
|
}
|
|
|
return config
|
|
return config
|
|
@@ -42,9 +55,8 @@ let requests = []
|
|
|
http.interceptors.response.use(async (response) => {
|
|
http.interceptors.response.use(async (response) => {
|
|
|
/* 请求之后拦截器。可以使用async await 做异步操作 */
|
|
/* 请求之后拦截器。可以使用async await 做异步操作 */
|
|
|
//toekn过期处理
|
|
//toekn过期处理
|
|
|
-
|
|
|
|
|
//200 返回数据成功 0
|
|
//200 返回数据成功 0
|
|
|
- if (response.data.code != 200 && response.data.code !=400) {
|
|
|
|
|
|
|
+ if (response.data.code != 200 && response.data.code != 400 && response.data.access_token==null) {
|
|
|
return Promise.reject(response)
|
|
return Promise.reject(response)
|
|
|
}
|
|
}
|
|
|
return response.data
|
|
return response.data
|
|
@@ -55,17 +67,27 @@ http.interceptors.response.use(async (response) => {
|
|
|
} = err
|
|
} = err
|
|
|
if (!isRefreshing) {
|
|
if (!isRefreshing) {
|
|
|
isRefreshing = true
|
|
isRefreshing = true
|
|
|
- let token = uni.getStorageSync('token')
|
|
|
|
|
|
|
+
|
|
|
|
|
+ let tokenInfo = uni.getStorageSync('tokenInfo')
|
|
|
|
|
+
|
|
|
let [, res] = await uni.request({
|
|
let [, res] = await uni.request({
|
|
|
- url: tokenUrl,
|
|
|
|
|
|
|
+ url: refreshTokenUrl,
|
|
|
method: 'POST',
|
|
method: 'POST',
|
|
|
header: {
|
|
header: {
|
|
|
- Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0"
|
|
|
|
|
|
|
+ 'Authorization': "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
|
|
|
|
|
+ 'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
|
|
+ 'Tenant-Id': tokenInfo.tenantId
|
|
|
},
|
|
},
|
|
|
|
|
+ data: {
|
|
|
|
|
+ 'tenantId': tokenInfo.tenantId,
|
|
|
|
|
+ 'refresh_token': tokenInfo.refreshToken,
|
|
|
|
|
+ 'grant_type': "refresh_token",
|
|
|
|
|
+ 'scope': "all",
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
//否则保存新的token
|
|
//否则保存新的token
|
|
|
- token = res.data.token_type + " " + res.data.access_token
|
|
|
|
|
- uni.setStorageSync('token', token)
|
|
|
|
|
|
|
+ cacheToken(res.data)
|
|
|
|
|
+
|
|
|
requests.forEach(cb => cb())
|
|
requests.forEach(cb => cb())
|
|
|
// 重试完了清空这个队列
|
|
// 重试完了清空这个队列
|
|
|
requests = []
|
|
requests = []
|
|
@@ -80,7 +102,22 @@ http.interceptors.response.use(async (response) => {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return Promise.reject(err)
|
|
|
|
|
|
|
+ if (err.data.code == 500) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: err.data.msg,
|
|
|
|
|
+ icon: "none"
|
|
|
|
|
+ })
|
|
|
|
|
+ return Promise.reject(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!err.data.success) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: err.data.msg,
|
|
|
|
|
+ icon: "none"
|
|
|
|
|
+ })
|
|
|
|
|
+ return err.data
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return err.data
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
export {
|
|
export {
|
|
|
http
|
|
http
|