Compare commits

..
2 Commits
Author SHA1 Message Date
xrain fa4032f239 token存储转移到cookie
Publish to npm / publish (push) Failing after 9s
2026-05-04 16:57:08 +08:00
xrain 713b8ae31e 取消了一些乱七八糟不同步的方法
Publish to npm / publish (push) Failing after 10s
2026-05-04 03:32:05 +08:00
2 changed files with 22 additions and 20 deletions
+20 -11
View File
@@ -77,19 +77,19 @@ async function fetchPost<T = any>(
// ── SimApiCore ────────────────────────────────────────
export class SimApiCore {
debug: boolean = true
auth: SimApiAuthConfig = {
private debug: boolean = true
private auth: SimApiAuthConfig = {
token_name: 'simapi-auth-token',
check_url: '/auth/check',
logout_url: '/auth/logout',
login_url: '/auth/login',
}
api: SimApiApiConfig = {
private api: SimApiApiConfig = {
endpoints: {default: ''},
defaultEndpoint: 'default',
businessCallback: {
401: () => localStorage.removeItem(this.auth.token_name),
401: () => this.removeToken(),
common: () => {
},
},
@@ -146,6 +146,14 @@ export class SimApiCore {
}
}
get isDebug() {
return this.debug
}
setDebug(debug: boolean) {
this.debug = debug;
}
setEndpoints(endpoints: { [name: string]: string }): void {
this.api.endpoints = {...this.api.endpoints, ...endpoints}
}
@@ -159,20 +167,21 @@ export class SimApiCore {
}
getToken(): string {
return localStorage.getItem(this.auth.token_name) ?? ''
const name = this.auth.token_name
const match = document.cookie.match(new RegExp(`(?:^|;)\\s?${name}=([^;]+)`))
return match ? match[1] : ''
}
setToken(token: string): void {
localStorage.setItem(this.auth.token_name, token)
const name = this.auth.token_name
document.cookie = `${name}=${token}; path=/; secure; samesite=none`
}
removeToken(): void {
localStorage.removeItem(this.auth.token_name)
const name = this.auth.token_name
document.cookie = `${name}=; path=/; max-age=0; secure; samesite=none`
}
get isLoggedIn(): boolean {
return !!localStorage.getItem(this.auth.token_name)
}
genS4(): string {
return (((1 + Math.random()) * 0x10000 * Date.parse(new Date().toString())) | 0)
@@ -254,7 +263,7 @@ export class SimApiCore {
if (this.debug) {
headers['Query-Id'] = queryId
console.log('[REQUEST*]', queryId, '->', uri, 'AUTH:', localStorage.getItem(this.auth.token_name))
console.log('[REQUEST*]', queryId, '->', uri, 'AUTH:', this.getToken())
}
const url = this.getEndpoint(endpointKey) + uri
+2 -9
View File
@@ -10,16 +10,9 @@ export const useSimApi = defineStore('simapi', {
// 在 state 中实例化 core
_core: new SimApiCore(),
}),
getters: {
// 直接映射 core 的属性和方法
debug: (state) => state._core.debug,
token: (state) => state._core.getToken(),
isLoggedIn: (state) => state._core.isLoggedIn,
api: (state) => state._core.api,
auth: (state) => state._core.auth,
IsDebug: state => state._core.isDebug
},
actions: {
// 所有方法直接代理到 core
autoInit(): void {
@@ -31,7 +24,7 @@ export const useSimApi = defineStore('simapi', {
},
setDebug(debug: boolean): void {
this._core.debug = debug
this._core.setDebug(debug);
},
setEndpoints(endpoints: { [name: string]: string }): void {