Compare commits

...
4 Commits
Author SHA1 Message Date
xrain 1597c98f39 支持了localstorage存储token
Publish to npm / publish (push) Failing after 8s
2026-08-10 22:58:28 +08:00
xrain 7dbb48ad90 fix config
Publish to npm / publish (push) Failing after 10s
2026-08-10 21:15:53 +08:00
xrain 88af4a2d96 fix config
Publish to npm / publish (push) Failing after 10s
2026-08-10 21:03:44 +08:00
xrain 9e44c6fcaf fix config
Publish to npm / publish (push) Failing after 10s
2026-08-10 21:01:21 +08:00
3 changed files with 57 additions and 44 deletions
+18 -6
View File
@@ -83,8 +83,9 @@ export class SimApiCore {
check_url: '/user/info', check_url: '/user/info',
logout_url: '/auth/logout', logout_url: '/auth/logout',
login_url: '/auth/login', login_url: '/auth/login',
tokenStore: "localstorage"
} }
webConfig: Map<string, Record<string, object>> = new Map(); private webConfig: Map<string, Record<string, object>> = new Map();
private api: SimApiApiConfig = { private api: SimApiApiConfig = {
endpoints: {default: ''}, endpoints: {default: ''},
@@ -99,7 +100,7 @@ export class SimApiCore {
error: (_err: any) => { error: (_err: any) => {
}, },
}, },
timeout: 10000, timeout: 10000
} }
constructor(options?: SimApiOptions) { constructor(options?: SimApiOptions) {
@@ -179,20 +180,31 @@ export class SimApiCore {
} }
getToken(): string { getToken(): string {
if (this.auth.tokenStore === 'localstorage') {
return localStorage.getItem(this.auth.token_name) ?? ''
}
const name = this.auth.token_name const name = this.auth.token_name
const match = document.cookie.match(new RegExp(`(?:^|;)\\s?${name}=([^;]+)`)) const match = document.cookie.match(new RegExp(`(?:^|;)\\s?${name}=([^;]+)`))
return match ? match[1] : '' return match ? match[1] : ''
} }
setToken(token: string): void { setToken(token: string): void {
if (this.auth.tokenStore === 'localstorage') {
localStorage.setItem(this.auth.token_name, token)
} else {
const name = this.auth.token_name const name = this.auth.token_name
document.cookie = `${name}=${token}; path=/; max-age=315360000; secure; samesite=none` document.cookie = `${name}=${token}; path=/; max-age=315360000; secure; samesite=none`
} }
}
removeToken(): void { removeToken(): void {
if (this.auth.tokenStore === 'localstorage') {
localStorage.removeItem(this.auth.token_name)
} else {
const name = this.auth.token_name const name = this.auth.token_name
document.cookie = `${name}=; path=/; max-age=0; secure; samesite=none` document.cookie = `${name}=; path=/; max-age=0; secure; samesite=none`
} }
}
genS4(): string { genS4(): string {
@@ -225,7 +237,7 @@ export class SimApiCore {
}; };
const resp = await this.query<any>('/config', {}, endpointName) const resp = await this.query<any>('/config', {}, endpointName)
if (resp?.data) { if (resp?.data) {
const d = resp.data.versions; const d = resp.data.Versions;
versions.apiApp = d.App?.split('+')[0] ?? '0.0.0'; versions.apiApp = d.App?.split('+')[0] ?? '0.0.0';
versions.apiSimApi = d.SimApi?.split('+')[0] ?? '0.0.0'; versions.apiSimApi = d.SimApi?.split('+')[0] ?? '0.0.0';
versions.apiAppFull = d.App ?? '0.0.0'; versions.apiAppFull = d.App ?? '0.0.0';
@@ -233,9 +245,9 @@ export class SimApiCore {
if (this.debug) { if (this.debug) {
console.log(`UI主应用版本: ${versions.uiApp}\nUISimApi版本: ${versions.uiSimApi}\nAPI主应用版本: ${versions.apiApp}\nAPISimApi版本: ${versions.apiSimApi}`) console.log(`UI主应用版本: ${versions.uiApp}\nUISimApi版本: ${versions.uiSimApi}\nAPI主应用版本: ${versions.apiApp}\nAPISimApi版本: ${versions.apiSimApi}`)
} }
resp.data.versions = versions; const conf = JSON.parse(JSON.stringify(resp.data));
this.webConfig.set(endpointName, resp.data); conf.Versions = versions;
this.webConfig.set(endpointName, conf);
} }
} }
return this.webConfig.get(endpointName)!; return this.webConfig.get(endpointName)!;
-1
View File
@@ -11,7 +11,6 @@ export const useSimApi = defineStore('simapi', {
_core: new SimApiCore(), _core: new SimApiCore(),
}), }),
getters: { getters: {
webConfig: state => state._core.webConfig,
IsDebug: state => state._core.isDebug IsDebug: state => state._core.isDebug
}, },
actions: { actions: {
+2
View File
@@ -22,6 +22,8 @@ export interface SimApiAuthConfig {
logout_url: string logout_url: string
/** 登录接口,默认 '/auth/login' */ /** 登录接口,默认 '/auth/login' */
login_url: string login_url: string
/** Token 存储位置 */
tokenStore: string
} }
/** 业务错误码回调 */ /** 业务错误码回调 */