Pārlūkot izejas kodu

token存储本地

zhou1577692533 1 nedēļu atpakaļ
vecāks
revīzija
21035f3f27
2 mainītis faili ar 25 papildinājumiem un 28 dzēšanām
  1. 21 1
      src/components/App.tsx
  2. 4 27
      src/script/service.ts

+ 21 - 1
src/components/App.tsx

@@ -5,6 +5,22 @@ import { initView } from 'dingtalk-docs-cool-app';
 import { Typography, Button, Card, Select, Input, Spin } from 'dingtalk-design-desktop';
 import './style.css';
 
+const STORAGE_PREFIX = 'aiTablePlugin_';
+
+function saveData<T>(key: string, value: T) {
+  localStorage.setItem(STORAGE_PREFIX + key, JSON.stringify(value));
+}
+
+function loadData<T>(key: string, defaultValue: T): T {
+  const raw = localStorage.getItem(STORAGE_PREFIX + key);
+  if (raw === null) return defaultValue;
+  try {
+    return JSON.parse(raw) as T;
+  } catch {
+    return defaultValue;
+  }
+}
+
 interface ApiParam {
   paramName: string;
   paramDesc: string;
@@ -47,7 +63,7 @@ function App() {
   const [apiParams, setApiParams] = useState<Record<string, string>>({});
   const [result, setResult] = useState<string>('');
   const [callLoading, setCallLoading] = useState<boolean>(false);
-  const [userInfo, setUserInfo] = useState<UserInfo | null>(null);
+  const [userInfo, setUserInfo] = useState<UserInfo | null>(loadData('userInfo', null));
   const [error, setError] = useState<string>('');
   const [customTableId, setCustomTableId] = useState<string>('');
   const [customTableName, setCustomTableName] = useState<string>('');
@@ -106,6 +122,10 @@ function App() {
       setUserInfo(user);
       
       const token = await Dingdocs.script.run('getToken');
+      
+      saveData('token', token);
+      saveData('userInfo', user);
+      
       await handleConfigPermission(token);
     } catch (error: any) {
       console.error('自动登录失败:', error);

+ 4 - 27
src/script/service.ts

@@ -4,26 +4,6 @@ import axios from 'axios';
 
 const BASE_URL = 'https://openapi.julefood.cn:8082/api';
 
-const STORAGE_PREFIX = 'aiTablePlugin_';
-
-function saveData<T>(key: string, value: T) {
-  localStorage.setItem(STORAGE_PREFIX + key, JSON.stringify(value));
-}
-
-function loadData<T>(key: string, defaultValue: T): T {
-  const raw = localStorage.getItem(STORAGE_PREFIX + key);
-  if (raw === null) return defaultValue;
-  try {
-    return JSON.parse(raw) as T;
-  } catch {
-    return defaultValue;
-  }
-}
-
-function removeData(key: string) {
-  localStorage.removeItem(STORAGE_PREFIX + key);
-}
-
 interface UserInfo {
   userId: string;
   name?: string;
@@ -69,8 +49,8 @@ interface ApiResponse {
   data?: any;
 }
 
-let token: string = loadData('token', '');
-let currentUserInfo: UserInfo | null = loadData('userInfo', null);
+let token: string = '';
+let currentUserInfo: UserInfo | null = null;
 
 const apiClient = axios.create({
   baseURL: BASE_URL,
@@ -82,9 +62,8 @@ const apiClient = axios.create({
 
 apiClient.interceptors.request.use(
   (config) => {
-    const currentToken = token || loadData('token', '');
-    if (currentToken) {
-      config.headers['token'] = currentToken;
+    if (token) {
+      config.headers['token'] = token;
     }
     return config;
   },
@@ -113,7 +92,6 @@ async function login(authCode: string): Promise<UserInfo> {
   
   if (response.data.code === 200) {
     token = response.data.result.token;
-    saveData('token', token);
     
     const userInfoStr = response.data.result.user_info;
     try {
@@ -133,7 +111,6 @@ async function login(authCode: string): Promise<UserInfo> {
       currentUserInfo = { userId: '', name: '用户' };
     }
     
-    saveData('userInfo', currentUserInfo);
     return currentUserInfo!;
   } else {
     throw new Error(response.data.msg || '登录失败');