const TOKEN_KEY = 'app_token' const USER_KEY = 'app_user' const TENANT_KEY = 'app_tenant_name' const REMEMBER_KEY = 'app_remember_me' const REMEMBER_TENANT_KEY = 'app_remember_tenant' const REMEMBER_ACCOUNT_KEY = 'app_remember_account' const REMEMBER_PASSWORD_KEY = 'app_remember_password' export function setToken(token) { uni.setStorageSync(TOKEN_KEY, token || '') } export function getToken() { return uni.getStorageSync(TOKEN_KEY) || '' } export function setUser(user) { uni.setStorageSync(USER_KEY, user || null) } export function getUser() { return uni.getStorageSync(USER_KEY) || null } export function setTenantName(name) { uni.setStorageSync(TENANT_KEY, name || '') } export function getTenantName() { return uni.getStorageSync(TENANT_KEY) || '' } export function isLoggedIn() { return !!getToken() } export function logout() { uni.removeStorageSync(TOKEN_KEY) uni.removeStorageSync(USER_KEY) } /** 是否开启记住账号登录信息 */ export function isRememberLogin() { return uni.getStorageSync(REMEMBER_KEY) === '1' } /** 读取记住的账号登录信息 */ export function getRememberLogin() { if (!isRememberLogin()) { return { rememberMe: false, tenantName: '', account: '', password: '' } } return { rememberMe: true, tenantName: uni.getStorageSync(REMEMBER_TENANT_KEY) || '', account: uni.getStorageSync(REMEMBER_ACCOUNT_KEY) || '', password: uni.getStorageSync(REMEMBER_PASSWORD_KEY) || '' } } /** 保存账号登录信息(租户、账号、密码) */ export function saveRememberLogin({ tenantName = '', account = '', password = '' } = {}) { uni.setStorageSync(REMEMBER_KEY, '1') uni.setStorageSync(REMEMBER_TENANT_KEY, tenantName) uni.setStorageSync(REMEMBER_ACCOUNT_KEY, account) uni.setStorageSync(REMEMBER_PASSWORD_KEY, password) } /** 清除记住的账号登录信息 */ export function clearRememberLogin() { uni.removeStorageSync(REMEMBER_KEY) uni.removeStorageSync(REMEMBER_TENANT_KEY) uni.removeStorageSync(REMEMBER_ACCOUNT_KEY) uni.removeStorageSync(REMEMBER_PASSWORD_KEY) } /** * 登录成功写入 token 与用户信息 * @param {{ token?: string, user?: object, nickname?: string, phone?: string, account?: string, name?: string, avatar?: string, id?: number|string }} payload */ export function loginSuccess(payload = {}) { const token = payload.token || payload.access_token || '' if (token) { setToken(token) } const rawUser = payload.user || payload const user = { id: rawUser.id, account: rawUser.account || '', name: rawUser.name || '', nickname: rawUser.nickname || rawUser.name || rawUser.account || '云泽用户', avatar: rawUser.avatar || '', phone: rawUser.phone || payload.phone || '', tid: rawUser.tid, rid: rawUser.rid, role_name: rawUser.role_name || '', ...rawUser } // 保证 nickname 可用 if (!user.nickname) { user.nickname = user.name || user.account || '云泽用户' } setUser(user) return user }