Files
xk-doctor-wx/utils/doctorWxAuthToken.js
2026-07-03 07:57:26 +08:00

56 lines
1.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** doctor-wx-auth 请求与绑定状态查询共用的登录态解析(无 API 依赖,避免与 common/js/index 循环引用) */
export const ADMIN_TOKEN_KEYS = {
platform_admin: 'platform_admin_token',
salesperson: 'salesperson_token',
clinic_salesperson: 'clinic_salesperson_token',
clinic_admin: 'clinic_admin_token',
};
export const ADMIN_USER_KEYS = {
platform_admin: 'platform_admin_user',
salesperson: 'salesperson_user',
clinic_salesperson: 'clinic_salesperson_user',
clinic_admin: 'clinic_admin_user',
};
/** 当前有效的 admin loginMode须同时有 token */
export function resolveActiveAdminLoginMode() {
const stored = uni.getStorageSync('loginMode');
if (stored && ADMIN_TOKEN_KEYS[stored] && uni.getStorageSync(ADMIN_TOKEN_KEYS[stored])) {
return stored;
}
return '';
}
/** doctor-wx-auth 接口应使用的 token优先当前 loginMode 对应 admin否则医生/药师 token不 fallback 其它 admin token */
export function resolveDoctorWxAuthToken() {
const loginMode = resolveActiveAdminLoginMode();
if (loginMode) {
return uni.getStorageSync(ADMIN_TOKEN_KEYS[loginMode]) || '';
}
return uni.getStorageSync('token') || '';
}
/** 当前登录上下文(手机号 + 账号维度,供 wx-bind-status 等) */
export function getCurrentLoginContext() {
const loginMode = resolveActiveAdminLoginMode();
if (loginMode) {
const user = uni.getStorageSync(ADMIN_USER_KEYS[loginMode]) || {};
return {
phone: String(user.phone || '').trim(),
account_type: 'admin',
account_id: Number(user.id || 0),
token: uni.getStorageSync(ADMIN_TOKEN_KEYS[loginMode]) || '',
};
}
const loginInfo = uni.getStorageSync('loginInfo') || uni.getStorageSync('logInfo') || {};
return {
phone: String(loginInfo.mobile || loginInfo.phone || '').trim(),
account_type: 'service_user',
account_id: Number(loginInfo.id || uni.getStorageSync('login_id') || 0),
token: uni.getStorageSync('token') || '',
};
}