用户中心部分添加无感刷新
This commit is contained in:
parent
52a8d03bf4
commit
cf042ea5d1
|
|
@ -70,7 +70,7 @@ export const GetUserInfoService = (Data) => {
|
||||||
}
|
}
|
||||||
return request.post('/user/info', params, {
|
return request.post('/user/info', params, {
|
||||||
headers: {
|
headers: {
|
||||||
'token': Data.token, // 鐏忥拷 token 閺囨寧宕叉稉鐑樺亶閻ㄥ嫪鎶ら悧灞解偓锟<E58193>
|
'Authorization': "Bearer " + Data.token ,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ const request = axios.create({
|
||||||
});
|
});
|
||||||
|
|
||||||
// 请求拦截器 - 添加token
|
// 请求拦截器 - 添加token
|
||||||
request.interceptors.request.use();
|
request.interceptors.request.use(
|
||||||
|
);
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
request.interceptors.response.use(
|
request.interceptors.response.use(
|
||||||
|
|
@ -23,19 +24,22 @@ request.interceptors.response.use(
|
||||||
if(result.status !== 200) {
|
if(result.status !== 200) {
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(result.data.message === "NOT_LOGIN" || [2, 3, 4].includes(result.data.code)) {
|
if(result.data.message === "NOT_LOGIN" || [2, 3, 4].includes(result.data.code)) {
|
||||||
// 检测到token过期
|
// 检测到token过期
|
||||||
if (isRefreshing) {
|
if (isRefreshing == false) {
|
||||||
isRefreshing = true;
|
isRefreshing = true;
|
||||||
|
|
||||||
// 这里需要替换为实际的refresh token请求
|
// 这里需要替换为实际的refresh token请求
|
||||||
return axios.post('/user/refresh', {
|
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
||||||
token: localStorage.getItem("refresh_token")
|
refresh_token: localStorage.getItem("refresh_token")
|
||||||
|
},{
|
||||||
|
headers: {
|
||||||
|
'Authorization': `Bearer ${localStorage.getItem("refresh_token")}`
|
||||||
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
const token = res.data["data"]["token"];
|
const token = res.data["data"]["access_token"];
|
||||||
const refreshToken = res.data["data"]["refresh_token"];
|
|
||||||
localStorage.setItem("token", token);
|
localStorage.setItem("token", token);
|
||||||
localStorage.setItem("refresh_token", refreshToken);
|
|
||||||
|
|
||||||
// 重试所有挂起的请求
|
// 重试所有挂起的请求
|
||||||
requests.forEach(cb => cb(token));
|
requests.forEach(cb => cb(token));
|
||||||
|
|
@ -48,9 +52,7 @@ request.interceptors.response.use(
|
||||||
return request(config);
|
return request(config);
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
// 刷新token失败,跳转登录
|
// 刷新token失败,跳转登录
|
||||||
ElMessage.error('登录已过期,请重新登录!');
|
ElMessage.error('登录已过期,请重新登录!12');
|
||||||
localStorage.removeItem("token");
|
|
||||||
localStorage.removeItem("refresh_token");
|
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
return Promise.reject(err);
|
return Promise.reject(err);
|
||||||
});
|
});
|
||||||
|
|
@ -62,14 +64,7 @@ request.interceptors.response.use(
|
||||||
resolve(request(result.config));
|
resolve(request(result.config));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
}
|
||||||
// 其他登录失效情况
|
|
||||||
ElMessage.error('登录失效,请重新登录!');
|
|
||||||
localStorage.removeItem("token");
|
|
||||||
localStorage.removeItem("refresh_token");
|
|
||||||
router.push("/login");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(result.data.code == 7) {
|
if(result.data.code == 7) {
|
||||||
|
|
@ -90,8 +85,12 @@ request.interceptors.response.use(
|
||||||
if (!isRefreshing) {
|
if (!isRefreshing) {
|
||||||
isRefreshing = true;
|
isRefreshing = true;
|
||||||
|
|
||||||
return axios.post('/user/refresh', {
|
return axios.post(baseURL+'user/refresh', {
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
refresh_token: localStorage.getItem("refresh_token")
|
||||||
|
},{
|
||||||
|
headers: {
|
||||||
|
'Authorization': `Bearer ${localStorage.getItem("refresh_token")}`
|
||||||
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
const { token, refresh_token } = res.data;
|
const { token, refresh_token } = res.data;
|
||||||
localStorage.setItem("token", token);
|
localStorage.setItem("token", token);
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,8 @@ const onLogin = async () => {
|
||||||
localStorage.setItem("token", result.data.access_token);
|
localStorage.setItem("token", result.data.access_token);
|
||||||
localStorage.setItem("userId", result.data.user_id);
|
localStorage.setItem("userId", result.data.user_id);
|
||||||
localStorage.setItem("username", result.data.username);
|
localStorage.setItem("username", result.data.username);
|
||||||
|
localStorage.setItem("refresh_token", result.data.refresh_token);
|
||||||
|
|
||||||
await getMyUserInfo(result.data.user_id);
|
await getMyUserInfo(result.data.user_id);
|
||||||
//token.value= result.data;
|
//token.value= result.data;
|
||||||
router.push("/user");
|
router.push("/user");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue