This commit is contained in:
我是个攻城狮
2026-07-21 15:24:11 +08:00
parent b48708dbbf
commit d556c8f0c1
20 changed files with 705 additions and 67 deletions
+40
View File
@@ -0,0 +1,40 @@
import axios from 'axios'
let csrfToken = ''
let csrfTokenPromise = null
export function setCsrfToken(token) {
csrfToken = token || ''
}
export function getCsrfToken() {
return csrfToken
}
// 登录成功或应用初始化后拉取当前会话的 CSRF token。
export async function fetchCsrfToken(forceRefresh = false) {
if (!forceRefresh && csrfToken) {
return csrfToken
}
if (csrfTokenPromise) {
return csrfTokenPromise
}
csrfTokenPromise = axios.get('/shop/passport/csrfToken')
.then((res) => {
const token = res && res.code === 1 && res.data ? res.data.token : ''
if (!token) {
throw new Error('CSRF Token 获取失败')
}
setCsrfToken(token)
return token
})
.finally(() => {
csrfTokenPromise = null
})
return csrfTokenPromise
}