feat: 区别不同的小程序的缓存问题

This commit is contained in:
2025-12-15 16:26:45 +08:00
parent 09452bf600
commit a3c363cbc9
8 changed files with 43 additions and 16 deletions

19
src/constant/token.js Normal file
View File

@@ -0,0 +1,19 @@
import { appId, clientId } from "@/constant/base";
/// 存储在本地的认证 token 键名
export const clientAuthToken = "AUTH_TOKEN_" + clientId + "_" + appId;
/// 设置本地存储的认证 token
export const setStorageSyncToken = (token) => {
uni.setStorageSync(clientAuthToken, token);
};
/// 获取本地存储的认证 token
export const getStorageSyncToken = () => {
return uni.getStorageSync(clientAuthToken);
};
/// 移除本地存储的认证 token
export const removeStorageSyncToken = () => {
uni.setStorageSync(clientAuthToken, "");
};

View File

@@ -2,6 +2,7 @@ import { wxLogin } from "../request/api/LoginApi";
import { loginAuth, bindPhone, checkPhone } from "@/manager/LoginManager"; import { loginAuth, bindPhone, checkPhone } from "@/manager/LoginManager";
import { clientId } from "@/constant/base"; import { clientId } from "@/constant/base";
import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant"; import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant";
import { getStorageSyncToken, setStorageSyncToken } from "../constant/token";
// 跳转登录 // 跳转登录
export const goLogin = () => uni.navigateTo({ url: "/pages/login/index" }); export const goLogin = () => uni.navigateTo({ url: "/pages/login/index" });
@@ -47,7 +48,7 @@ export const onLogin = async (e) => {
// 检测token // 检测token
export const checkToken = () => { export const checkToken = () => {
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
return new Promise((resolve) => { return new Promise((resolve) => {
if (!token) { if (!token) {
@@ -61,7 +62,7 @@ export const checkToken = () => {
// 刷新token // 刷新token
export const refreshToken = () => { export const refreshToken = () => {
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
if (!token) { if (!token) {
return; return;
@@ -81,7 +82,7 @@ export const refreshToken = () => {
const response = await wxLogin(params); const response = await wxLogin(params);
if (response.access_token) { if (response.access_token) {
uni.setStorageSync("token", response.access_token); setStorageSyncToken(response.access_token);
// 登录成功后,触发登录成功事件 // 登录成功后,触发登录成功事件
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS); uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
} }

View File

@@ -7,9 +7,10 @@ import { getWeChatAuthCode } from "./AuthManager";
import { useAppStore } from "@/store"; import { useAppStore } from "@/store";
import { clientId } from "@/constant/base"; import { clientId } from "@/constant/base";
import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant"; import { NOTICE_EVENT_LOGIN_SUCCESS } from "@/constant/constant";
import { removeStorageSyncToken, setStorageSyncToken } from "../constant/token";
const loginAuth = (e) => { const loginAuth = (e) => {
uni.setStorageSync("token", ""); removeStorageSyncToken();
const appStore = useAppStore(); const appStore = useAppStore();
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
@@ -26,7 +27,7 @@ const loginAuth = (e) => {
console.log("获取到的微信授权response:", response); console.log("获取到的微信授权response:", response);
if (response.access_token) { if (response.access_token) {
uni.setStorageSync("token", response.access_token); setStorageSyncToken(response.access_token);
// 登录成功后,触发登录成功事件 // 登录成功后,触发登录成功事件
uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS); uni.$emit(NOTICE_EVENT_LOGIN_SUCCESS);
resolve(); resolve();

View File

@@ -159,6 +159,7 @@ import WebSocketManager from "@/utils/WebSocketManager";
import { ThrottleUtils, IdUtils } from "@/utils"; import { ThrottleUtils, IdUtils } from "@/utils";
import { checkToken } from "@/hooks/useGoLogin"; import { checkToken } from "@/hooks/useGoLogin";
import { useAppStore } from "@/store"; import { useAppStore } from "@/store";
import { getStorageSyncToken } from "@/constant/token";
const appStore = useAppStore(); const appStore = useAppStore();
/// 导航栏相关 /// 导航栏相关
@@ -346,7 +347,7 @@ onLoad(() => {
// token存在初始化数据 // token存在初始化数据
const initHandler = () => { const initHandler = () => {
console.log("initHandler"); console.log("initHandler");
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
if (!token) return; if (!token) return;
loadRecentConversation(); loadRecentConversation();
@@ -414,7 +415,7 @@ const initWebSocket = async () => {
} }
// 使用配置的WebSocket服务器地址 // 使用配置的WebSocket服务器地址
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
const wsUrl = `${appStore.serverConfig.wssUrl}?access_token=${token}`; const wsUrl = `${appStore.serverConfig.wssUrl}?access_token=${token}`;
// 初始化WebSocket管理器 // 初始化WebSocket管理器

View File

@@ -1,5 +1,7 @@
import { goLogin } from "@/hooks/useGoLogin"; import { goLogin } from "@/hooks/useGoLogin";
import { useAppStore } from "@/store"; import { useAppStore } from "@/store";
import { getStorageSyncToken } from "@/constant/token";
import { removeStorageSyncToken } from "@/constant/token";
/// 请求流式数据的API /// 请求流式数据的API
const API = "/agent/assistant/chat"; const API = "/agent/assistant/chat";
@@ -72,7 +74,7 @@ const stopAbortTask = () => {
const agentChatStream = (params, onChunk) => { const agentChatStream = (params, onChunk) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
const requestId = Date.now().toString(); // 生成唯一请求ID const requestId = Date.now().toString(); // 生成唯一请求ID
// 重置状态 // 重置状态
@@ -130,7 +132,7 @@ const agentChatStream = (params, onChunk) => {
res.statusCode res.statusCode
); );
if (res.statusCode === 424) { if (res.statusCode === 424) {
uni.setStorageSync("token", ""); removeStorageSyncToken();
goLogin(); goLogin();
} }
if (onChunk) { if (onChunk) {
@@ -144,8 +146,7 @@ const agentChatStream = (params, onChunk) => {
} }
} else { } else {
console.log( console.log(
`❌ 请求 [${requestId}] ${ `❌ 请求 [${requestId}] ${isAborted ? "已终止" : "已过期"
isAborted ? "已终止" : "已过期"
}忽略complete回调` }忽略complete回调`
); );
} }
@@ -240,7 +241,7 @@ const weAtob = (string) => {
r2, r2,
i = 0; i = 0;
for (; i < string.length; ) { for (; i < string.length;) {
bitmap = bitmap =
(b64.indexOf(string.charAt(i++)) << 18) | (b64.indexOf(string.charAt(i++)) << 18) |
(b64.indexOf(string.charAt(i++)) << 12) | (b64.indexOf(string.charAt(i++)) << 12) |

View File

@@ -1,3 +1,4 @@
import { removeStorageSyncToken } from "@/constant/token";
import request from "../base/request"; import request from "../base/request";
const wxLogin = (args) => { const wxLogin = (args) => {
@@ -8,7 +9,7 @@ const wxLogin = (args) => {
}, },
}; };
uni.setStorageSync("token", ""); removeStorageSyncToken();
return request.post("/auth/oauth2/token", args, config); return request.post("/auth/oauth2/token", args, config);
}; };

View File

@@ -1,10 +1,11 @@
import { getCurrentConfig } from "@/constant/base"; import { getCurrentConfig } from "@/constant/base";
import { useAppStore } from "@/store"; import { useAppStore } from "@/store";
import { getStorageSyncToken } from "@/constant/token";
export const updateImageFile = (file) => { export const updateImageFile = (file) => {
const { serverConfig } = useAppStore(); const { serverConfig } = useAppStore();
const url = serverConfig.baseUrl + "/hotelBiz/hotBizCommon/upload"; const url = serverConfig.baseUrl + "/hotelBiz/hotBizCommon/upload";
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
const clientId = getCurrentConfig().clientId; const clientId = getCurrentConfig().clientId;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@@ -2,6 +2,8 @@ import { goLogin } from "../../hooks/useGoLogin";
import { getCurrentConfig } from "@/constant/base"; import { getCurrentConfig } from "@/constant/base";
import { useAppStore } from "@/store"; import { useAppStore } from "@/store";
import { NOTICE_EVENT_LOGOUT } from "@/constant/constant"; import { NOTICE_EVENT_LOGOUT } from "@/constant/constant";
import { getStorageSyncToken } from "@/constant/token";
import { removeStorageSyncToken } from "@/constant/token";
const clientId = getCurrentConfig().clientId; const clientId = getCurrentConfig().clientId;
const defaultConfig = { const defaultConfig = {
@@ -19,7 +21,7 @@ function request(url, args = {}, method = "POST", customConfig = {}) {
url = appStore.serverConfig?.baseUrl + url; url = appStore.serverConfig?.baseUrl + url;
} }
// 动态获取 token // 动态获取 token
const token = uni.getStorageSync("token"); const token = getStorageSyncToken();
let header = { let header = {
...defaultConfig.header, ...defaultConfig.header,
@@ -58,7 +60,7 @@ function request(url, args = {}, method = "POST", customConfig = {}) {
resolve(res.data); resolve(res.data);
if (res.statusCode && res.statusCode === 424) { if (res.statusCode && res.statusCode === 424) {
console.log("424错误重新登录"); console.log("424错误重新登录");
uni.setStorageSync("token", ""); removeStorageSyncToken();
uni.$emit(NOTICE_EVENT_LOGOUT); uni.$emit(NOTICE_EVENT_LOGOUT);
goLogin(); goLogin();
} }