|
@@ -4,6 +4,7 @@ import { setApp } from './config';
|
|
import bookStore from '@src/store/book'
|
|
import bookStore from '@src/store/book'
|
|
import { enumDictList, getRechargeTemplate } from './server/index/index';
|
|
import { enumDictList, getRechargeTemplate } from './server/index/index';
|
|
import indexStore from './store/index'
|
|
import indexStore from './store/index'
|
|
|
|
+import { getUserInfo } from './server/wx/login';
|
|
export interface ResData {
|
|
export interface ResData {
|
|
code: number,
|
|
code: number,
|
|
data: any,
|
|
data: any,
|
|
@@ -26,10 +27,10 @@ const requestInterceptor = (chain) => {
|
|
requestParams.url = requestParams.url?.match(/^http[s]?:\/\//ig) ? requestParams.url : app.apiUrl + requestParams.url
|
|
requestParams.url = requestParams.url?.match(/^http[s]?:\/\//ig) ? requestParams.url : app.apiUrl + requestParams.url
|
|
// 是登录接口token换成inittoken
|
|
// 是登录接口token换成inittoken
|
|
let token = requestParams.url.match(/(\/jsCodeLogin)|(\/appComponent\/list)/ig) ? app.initToken : app.token
|
|
let token = requestParams.url.match(/(\/jsCodeLogin)|(\/appComponent\/list)/ig) ? app.initToken : app.token
|
|
- // 不存在token并且不是init和login接口关闭请求
|
|
|
|
- if (!token && !requestParams.url.match(/(\/jsCodeLogin)|(\/loginInitialize)/ig)) {
|
|
|
|
|
|
+ //token验证未通过并且不是init和login接口关闭请求
|
|
|
|
+ if (!app.tokenValid && !requestParams.url.match(/(\/jsCodeLogin)|(\/loginInitialize)|(\/refreshUserInfo)/ig)) {
|
|
// 打印日志或执行一些清理操作
|
|
// 打印日志或执行一些清理操作
|
|
- console.log("Token 无效,取消请求,并存入待请求列表,授权后重新请求");
|
|
|
|
|
|
+ console.log("Token为验证是否有效,取消请求,并存入待请求列表,授权后重新请求");
|
|
// 存入待请求列表
|
|
// 存入待请求列表
|
|
pendingRequests.push(chain);
|
|
pendingRequests.push(chain);
|
|
// 返回一个被拒绝的Promise以中断请求
|
|
// 返回一个被拒绝的Promise以中断请求
|
|
@@ -65,20 +66,28 @@ const responseInterceptor = (chain) => {
|
|
if (chain.requestParams.url.includes("loginInitialize")) {
|
|
if (chain.requestParams.url.includes("loginInitialize")) {
|
|
// 存放初始token和app信息
|
|
// 存放初始token和app信息
|
|
setApp({ initToken: data.data.token, appInfo: data.data.appInfo, payVersion: data.data.appInfo.iosPayment })
|
|
setApp({ initToken: data.data.token, appInfo: data.data.appInfo, payVersion: data.data.appInfo.iosPayment })
|
|
|
|
+ // 获取个人信息接口先验证登录是否过期,如果没过期放行接口请求,过期将token清除重新登录
|
|
|
|
+ let userInfo = await getUserInfo()
|
|
|
|
+ let user: any = null
|
|
|
|
+ if (!userInfo) {
|
|
|
|
+ setApp({ token: "" })
|
|
|
|
+ // 登录
|
|
|
|
+ user = await api.login()
|
|
|
|
+ } else {
|
|
|
|
+ console.log("验证token通过")
|
|
|
|
+ setApp({ tokenValid: true })
|
|
|
|
+ }
|
|
// 获取枚举
|
|
// 获取枚举
|
|
enumDictList()
|
|
enumDictList()
|
|
- // 登录
|
|
|
|
- let user: any = await api.login()
|
|
|
|
- console.log("user", user)
|
|
|
|
// 存放user信息到本地
|
|
// 存放user信息到本地
|
|
Taro.setStorageSync("userInfo", user)
|
|
Taro.setStorageSync("userInfo", user)
|
|
// 获取充值模板
|
|
// 获取充值模板
|
|
await getRechargeTemplate()
|
|
await getRechargeTemplate()
|
|
// 判断是否需要隐藏支付
|
|
// 判断是否需要隐藏支付
|
|
if (app.system === "ios") {
|
|
if (app.system === "ios") {
|
|
- let iosShowPay = app?.proVersion? app?.payVersion >= app?.proVersion : false
|
|
|
|
- console.log("是ios",iosShowPay)
|
|
|
|
- setApp({iosShowPay})
|
|
|
|
|
|
+ let iosShowPay = app?.proVersion ? app?.payVersion >= app?.proVersion : false
|
|
|
|
+ console.log("是ios", iosShowPay)
|
|
|
|
+ setApp({ iosShowPay })
|
|
// setApp({ iosShowPay: true })
|
|
// setApp({ iosShowPay: true })
|
|
} else {
|
|
} else {
|
|
setApp({ iosShowPay: true })
|
|
setApp({ iosShowPay: true })
|
|
@@ -95,13 +104,15 @@ const responseInterceptor = (chain) => {
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case 300:
|
|
case 300:
|
|
- log("token过期,重新登录", data)
|
|
|
|
- setApp({ token: "" })
|
|
|
|
- await api.loginInit(app.appId)
|
|
|
|
- // 重新执行当前请求
|
|
|
|
- console.log("登录后重新请求===>")
|
|
|
|
- const newRequestParams = chain.requestParams;
|
|
|
|
- return Taro.request(newRequestParams).then(newResponse => newResponse.data);
|
|
|
|
|
|
+ if (app.tokenValid) {
|
|
|
|
+ log("token过期,重新登录", data)
|
|
|
|
+ setApp({ token: "",tokenValid:false })
|
|
|
|
+ await api.loginInit(app.appId)
|
|
|
|
+ // 重新执行当前请求
|
|
|
|
+ console.log("登录后重新请求===>")
|
|
|
|
+ const newRequestParams = chain.requestParams;
|
|
|
|
+ return Taro.request(newRequestParams).then(newResponse => newResponse.data);
|
|
|
|
+ }
|
|
default:
|
|
default:
|
|
log("未知错误", data)
|
|
log("未知错误", data)
|
|
Taro.showToast({
|
|
Taro.showToast({
|