批量优化
This commit is contained in:
1 parent
e3db229f41
commit
aa92ca40a2
79 files changed
+7495
-1104
No files matched your search
+47
-3
@@ -4,13 +4,20 @@ const TENANT_KEY = 'app_tenant_name'
|
||||
const TID_KEY = 'app_tid'
|
||||
const REFRESH_KEY = 'app_refresh_token'
|
||||
const SID_KEY = 'app_sid'
|
||||
const TENANTS_KEY = 'app_tenants'
|
||||
|
||||
/** 是否启用统一认证:.env 中配置 VITE_AUTH_MODE=sso */
|
||||
/**
|
||||
* 是否启用统一认证(UAC)。
|
||||
* 统一认证是默认形态(与 Web 端 /auth/login 同一套账号体系);
|
||||
* 仅在 .env 中显式配置 VITE_AUTH_MODE=legacy 时才回退旧的「租户名 + 账号」直登。
|
||||
*/
|
||||
export function isSSOEnabled() {
|
||||
try {
|
||||
return (typeof import.meta !== 'undefined' && import.meta.env && import.meta.env.VITE_AUTH_MODE) === 'sso'
|
||||
const mode =
|
||||
(typeof import.meta !== 'undefined' && import.meta.env && import.meta.env.VITE_AUTH_MODE) || ''
|
||||
return String(mode).toLowerCase() !== 'legacy'
|
||||
} catch (e) {
|
||||
return false
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +43,28 @@ export function setTid(tid) {
|
||||
export function getTid() {
|
||||
return Number(uni.getStorageSync(TID_KEY) || 0)
|
||||
}
|
||||
|
||||
/** 统一认证:缓存「该账号可进入的企业」列表,供登录后展示/切换企业 */
|
||||
export function setTenants(list) {
|
||||
uni.setStorageSync(TENANTS_KEY, Array.isArray(list) ? list : [])
|
||||
}
|
||||
|
||||
export function getTenants() {
|
||||
const list = uni.getStorageSync(TENANTS_KEY)
|
||||
return Array.isArray(list) ? list : []
|
||||
}
|
||||
|
||||
/**
|
||||
* 取「当前登录的那一家企业」的名称。
|
||||
* 登录返回的 tenants 是该账号可进入的全部企业,顶部展示必须是当前会话选中的企业。
|
||||
*/
|
||||
export function resolveTenantName(info = {}, tid = 0) {
|
||||
if (info && info.tenant_name) return info.tenant_name
|
||||
const list = (info && info.tenants) || getTenants()
|
||||
const hit = list.find((t) => String(t.tid) === String(info.tid || tid))
|
||||
if (hit) return hit.tenant_name || ''
|
||||
return list.length ? list[0].tenant_name || '' : ''
|
||||
}
|
||||
const REMEMBER_KEY = 'app_remember_me'
|
||||
const REMEMBER_TENANT_KEY = 'app_remember_tenant'
|
||||
const REMEMBER_ACCOUNT_KEY = 'app_remember_account'
|
||||
@@ -74,6 +103,21 @@ export function logout() {
|
||||
uni.removeStorageSync(USER_KEY)
|
||||
uni.removeStorageSync(REFRESH_KEY)
|
||||
uni.removeStorageSync(SID_KEY)
|
||||
uni.removeStorageSync(TID_KEY)
|
||||
uni.removeStorageSync(TENANTS_KEY)
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除「待选企业」阶段的临时登录态。
|
||||
* 一人多企业时 /auth/login 先签发一枚 tid=0、有效期 10 分钟的待选令牌,
|
||||
* 用户若放弃选择或切换账号,必须清掉,避免半登录态残留去访问业务接口。
|
||||
*/
|
||||
export function clearPendingAuth() {
|
||||
uni.removeStorageSync(TOKEN_KEY)
|
||||
uni.removeStorageSync(REFRESH_KEY)
|
||||
uni.removeStorageSync(SID_KEY)
|
||||
uni.removeStorageSync(TID_KEY)
|
||||
uni.removeStorageSync(TENANTS_KEY)
|
||||
}
|
||||
|
||||
/** 是否开启记住账号登录信息 */
|
||||
|
||||
Reference in new issue
Block a user