二期接口加上无感token

master
许宏杰 10 months ago
parent 85f6bfa41b
commit db6ed97a40

@ -31,7 +31,7 @@ export function updateHistory(data) {
return request({
url: '/mudu/history',
method: 'put',
data
data,
})
}
@ -42,3 +42,11 @@ export function delHistory(id) {
method: 'delete',
})
}
export function loginMudu2(data) {
return request({
url: '/loginnocaptcha',
method: 'post',
data,
})
}

@ -9,10 +9,12 @@
// import Vue from 'vue';
import router from '../router'
import CryptoJS from 'crypto-js'
import axios from 'axios'
import { Toast } from 'vant'
import { refreshToken, isRefreshRequest } from '@/util/refresh2.js'
// 实例化axios
const request = axios.create({
baseURL: process.env.VUE_APP_RUOYI,
@ -23,7 +25,7 @@ const request = axios.create({
request.interceptors.request.use(
(config) => {
if (config.url !== 'secret/token') {
let token = localStorage.getItem('mudu_token')
let token = localStorage.getItem('mudu2_token')
let authToken = 'Bearer ' + token
config.headers['Authorization'] = authToken
}
@ -51,7 +53,25 @@ request.interceptors.request.use(
// response--响应 拦截器
request.interceptors.response.use(
(response) => {
async (response) => {
let errorData = response
if (errorData.data.code === 401 && !isRefreshRequest(errorData.config)) {
const isSucceed = await refreshToken()
if (isSucceed) {
//重新请求
// console.log('重新刷新')
errorData.config.headers.Authorization =
'Bearer ' + localStorage.getItem('mudu2_token') //替换token
let result = await request.request(errorData.config) //重新请求
return result
} else {
Toast({
message: '刷新令牌失败',
position: 'bottom',
})
}
}
// 系统返回状态判断
if (response.data.code === 500) {
Toast({

@ -0,0 +1,27 @@
import { loginMudu2 } from '@/api/mudu/records.js'
let promise
export async function refreshToken() {
if (promise) {
return promise
}
promise = new Promise(async (resolve) => {
const loginFrom = {
username: 'admin',
password: 'Mudu@123.',
}
let res = await loginMudu2(loginFrom, { __isRefreshToken: true })
localStorage.setItem('mudu2_token', res.token) //存token
resolve(res.code === 200)
})
promise.finally(() => {
promise = null
})
return promise
}
export function isRefreshRequest(config) {
// console.log(config.__isRefreshToken)
return !!config.__isRefreshToken //两个取反变成boolean
}
Loading…
Cancel
Save