Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1597c98f39 | ||
|
|
7dbb48ad90 | ||
|
|
88af4a2d96 | ||
|
|
9e44c6fcaf | ||
|
|
592607f1e2 | ||
|
|
7aee4b708d |
+19
-7
@@ -83,8 +83,9 @@ export class SimApiCore {
|
||||
check_url: '/user/info',
|
||||
logout_url: '/auth/logout',
|
||||
login_url: '/auth/login',
|
||||
tokenStore: "localstorage"
|
||||
}
|
||||
webConfig: Map<string, Map<string, object>> = new Map();
|
||||
private webConfig: Map<string, Record<string, object>> = new Map();
|
||||
|
||||
private api: SimApiApiConfig = {
|
||||
endpoints: {default: ''},
|
||||
@@ -99,7 +100,7 @@ export class SimApiCore {
|
||||
error: (_err: any) => {
|
||||
},
|
||||
},
|
||||
timeout: 10000,
|
||||
timeout: 10000
|
||||
}
|
||||
|
||||
constructor(options?: SimApiOptions) {
|
||||
@@ -179,20 +180,31 @@ export class SimApiCore {
|
||||
}
|
||||
|
||||
getToken(): string {
|
||||
if (this.auth.tokenStore === 'localstorage') {
|
||||
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 {
|
||||
if (this.auth.tokenStore === 'localstorage') {
|
||||
localStorage.setItem(this.auth.token_name, token)
|
||||
} else {
|
||||
const name = this.auth.token_name
|
||||
document.cookie = `${name}=${token}; path=/; max-age=315360000; secure; samesite=none`
|
||||
}
|
||||
}
|
||||
|
||||
removeToken(): void {
|
||||
if (this.auth.tokenStore === 'localstorage') {
|
||||
localStorage.removeItem(this.auth.token_name)
|
||||
} else {
|
||||
const name = this.auth.token_name
|
||||
document.cookie = `${name}=; path=/; max-age=0; secure; samesite=none`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
genS4(): string {
|
||||
@@ -213,7 +225,7 @@ export class SimApiCore {
|
||||
console.log('[DEBUG]', ...args)
|
||||
}
|
||||
|
||||
async getConfig(reload: boolean = false, endpointName: string = 'default'): Promise<Map<string, object>> {
|
||||
async getConfig(reload: boolean = false, endpointName: string = 'default'): Promise<Record<string, object>> {
|
||||
if (!this.webConfig.has(endpointName) || reload) {
|
||||
const versions: SimApiVersions = {
|
||||
uiApp: typeof AppVersion === 'undefined' ? "0.0.0-develop" : AppVersion,
|
||||
@@ -225,7 +237,7 @@ export class SimApiCore {
|
||||
};
|
||||
const resp = await this.query<any>('/config', {}, endpointName)
|
||||
if (resp?.data) {
|
||||
const d = resp.data.versions;
|
||||
const d = resp.data.Versions;
|
||||
versions.apiApp = d.App?.split('+')[0] ?? '0.0.0';
|
||||
versions.apiSimApi = d.SimApi?.split('+')[0] ?? '0.0.0';
|
||||
versions.apiAppFull = d.App ?? '0.0.0';
|
||||
@@ -233,9 +245,9 @@ export class SimApiCore {
|
||||
if (this.debug) {
|
||||
console.log(`UI主应用版本: ${versions.uiApp}\nUISimApi版本: ${versions.uiSimApi}\nAPI主应用版本: ${versions.apiApp}\nAPISimApi版本: ${versions.apiSimApi}`)
|
||||
}
|
||||
resp.data.versions = versions;
|
||||
this.webConfig.set(endpointName, resp.data);
|
||||
|
||||
const conf = JSON.parse(JSON.stringify(resp.data));
|
||||
conf.Versions = versions;
|
||||
this.webConfig.set(endpointName, conf);
|
||||
}
|
||||
}
|
||||
return this.webConfig.get(endpointName)!;
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ export const useSimApi = defineStore('simapi', {
|
||||
return this._core.getEndpoint(name)
|
||||
},
|
||||
|
||||
async getConfig(reload = false, endpointName?: string): Promise<Map<string, object>> {
|
||||
async getConfig(reload = false, endpointName?: string): Promise<Record<string, object>> {
|
||||
return this._core.getConfig(reload, endpointName)
|
||||
},
|
||||
},
|
||||
|
||||
@@ -22,6 +22,8 @@ export interface SimApiAuthConfig {
|
||||
logout_url: string
|
||||
/** 登录接口,默认 '/auth/login' */
|
||||
login_url: string
|
||||
/** Token 存储位置 */
|
||||
tokenStore: string
|
||||
}
|
||||
|
||||
/** 业务错误码回调 */
|
||||
|
||||
Reference in New Issue
Block a user