|
|
@@ -15,7 +15,12 @@ export function getToken() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/** 401 未授权:清 token 并回登录页(网络错误勿调用) */
|
|
|
+/** 后端 JWT 校验失败返回 403(无 401);401/403 均视为需重新登录 */
|
|
|
+function isAuthFailureStatus(statusCode) {
|
|
|
+ return statusCode === 401 || statusCode === 403
|
|
|
+}
|
|
|
+
|
|
|
+/** 未授权 / 凭证无效:清 token 并回登录页(网络错误勿调用) */
|
|
|
function clearSessionAndRedirectToLogin(toastTitle = '请先登录') {
|
|
|
setToken('')
|
|
|
uni.showToast({ title: toastTitle, icon: 'none' })
|
|
|
@@ -62,7 +67,7 @@ function request(options) {
|
|
|
...options.header
|
|
|
},
|
|
|
success: (res) => {
|
|
|
- if (res.statusCode === 401) {
|
|
|
+ if (isAuthFailureStatus(res.statusCode)) {
|
|
|
clearSessionAndRedirectToLogin()
|
|
|
reject(new Error('请先登录'))
|
|
|
return
|
|
|
@@ -99,7 +104,7 @@ export function getMessages(token, otherUserId, params = {}) {
|
|
|
Authorization: token ? `Bearer ${token}` : ''
|
|
|
},
|
|
|
success: (res) => {
|
|
|
- if (res.statusCode === 401) {
|
|
|
+ if (isAuthFailureStatus(res.statusCode)) {
|
|
|
clearSessionAndRedirectToLogin()
|
|
|
reject(new Error('请先登录'))
|
|
|
return
|
|
|
@@ -161,7 +166,7 @@ export function uploadFile(token, filePath, fileName, onProgress) {
|
|
|
Authorization: token ? `Bearer ${token}` : ''
|
|
|
},
|
|
|
success: (res) => {
|
|
|
- if (res.statusCode === 401) {
|
|
|
+ if (isAuthFailureStatus(res.statusCode)) {
|
|
|
clearSessionAndRedirectToLogin()
|
|
|
reject(new Error('请先登录'))
|
|
|
return
|