fix(interceptor):修复登录账密错误时无限跳转的问题

This commit is contained in:
nanxu 2025-06-23 20:21:52 +08:00
parent ebb32a8cf0
commit f9486c8706
3 changed files with 8 additions and 4 deletions

View File

@ -16,12 +16,12 @@ request.interceptors.request.use(attachAccessToken,authRequestError)
request.interceptors.response.use( request.interceptors.response.use(
handlerefresherror, handlerefresherror,
undefined err => err
) )
request.interceptors.response.use(res=>{ request.interceptors.response.use(res=>{
return res.data return res.data
},undefined },err => err
) )
export default request export default request

View File

@ -6,6 +6,9 @@ let isrefreshing = false
//待刷新token任务列表 //待刷新token任务列表
let queue = [] let queue = []
//不刷新Token白名单
let urls = ['/api/auth/refresh','/api/auth/login','/api/auth/register']
/** /**
* 运行任务队列 * 运行任务队列
* @param {*} token * @param {*} token
@ -22,7 +25,7 @@ function runqueque(token) {
*/ */
export function handlerefresherror(response) { export function handlerefresherror(response) {
const { config, data, status } = response const { config, data, status } = response
if ((data.code == 2009 || status == 401 && config.url != "/api/auth/refresh") && !config._retry) { if ((data.code == 2009 || status == 401 && !urls.includes(config.url)) && !config._retry) {
config._retry = true config._retry = true
if (!isrefreshing) { if (!isrefreshing) {
isrefreshing = true isrefreshing = true
@ -33,7 +36,7 @@ export function handlerefresherror(response) {
.then(r => { .then(r => {
if (r.code != 1000) { if (r.code != 1000) {
window.location.href = '/auth/login' window.location.href = '/auth/login'
return Promise.reject(r.data) return Promise.reject(r)
} }
const { token, refreshToken } = r.data const { token, refreshToken } = r.data
auth.setAccessToken(token) auth.setAccessToken(token)

View File

@ -72,6 +72,7 @@ export default {
const res = await this.$api.login(this.formdata) const res = await this.$api.login(this.formdata)
let msg = '' let msg = ''
let type = 'danger' let type = 'danger'
console.log(res)
switch (res.code) { switch (res.code) {
case 2000: msg = '登录成功'; break case 2000: msg = '登录成功'; break
case 2001: msg = '用户名或密码错误'; break case 2001: msg = '用户名或密码错误'; break