2
0
Переглянути джерело

♻️ refactor(auth): 修改移动端token存储键名并调整登录返回类型

- 将localStorage中的token键名从'token'改为'mobile_token'以区分平台
- 更新AuthContextType中login方法的返回类型为Promise<T>以返回用户信息
yourname 6 місяців тому
батько
коміт
a39901c8cb
2 змінених файлів з 4 додано та 4 видалено
  1. 3 3
      src/client/mobile/hooks/AuthProvider.tsx
  2. 1 1
      src/share/types.ts

+ 3 - 3
src/client/mobile/hooks/AuthProvider.tsx

@@ -21,7 +21,7 @@ const AuthContext = createContext<AuthContextType<User> | null>(null);
 // 认证提供器组件
 // 认证提供器组件
 export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
 export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
   const [user, setUser] = useState<User | null>(null);
   const [user, setUser] = useState<User | null>(null);
-  const [token, setToken] = useState<string | null>(localStorage.getItem('token'));
+  const [token, setToken] = useState<string | null>(localStorage.getItem('mobile_token'));
   const [isAuthenticated, setIsAuthenticated] = useState<boolean>(false);
   const [isAuthenticated, setIsAuthenticated] = useState<boolean>(false);
   const queryClient = useQueryClient();
   const queryClient = useQueryClient();
 
 
@@ -39,7 +39,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
       setToken(null);
       setToken(null);
       setUser(null);
       setUser(null);
       setIsAuthenticated(false);
       setIsAuthenticated(false);
-      localStorage.removeItem('token');
+      localStorage.removeItem('mobile_token');
       // 清除Authorization头
       // 清除Authorization头
       delete axios.defaults.headers.common['Authorization'];
       delete axios.defaults.headers.common['Authorization'];
       console.log('登出时已删除全局Authorization头');
       console.log('登出时已删除全局Authorization头');
@@ -106,7 +106,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
       setToken(newToken);
       setToken(newToken);
       setUser(newUser);
       setUser(newUser);
       setIsAuthenticated(true);
       setIsAuthenticated(true);
-      localStorage.setItem('token', newToken);
+      localStorage.setItem('mobile_token', newToken);
       return newUser;
       return newUser;
     } catch (error) {
     } catch (error) {
       console.error('登录失败:', error);
       console.error('登录失败:', error);

+ 1 - 1
src/share/types.ts

@@ -8,7 +8,7 @@ export interface GlobalConfig {
 export interface AuthContextType<T> {
 export interface AuthContextType<T> {
   user: T | null;
   user: T | null;
   token: string | null;
   token: string | null;
-  login: (username: string, password: string, latitude?: number, longitude?: number) => Promise<void>;
+  login: (username: string, password: string, latitude?: number, longitude?: number) => Promise<T>;
   logout: () => Promise<void>;
   logout: () => Promise<void>;
   isAuthenticated: boolean;
   isAuthenticated: boolean;
   isLoading: boolean;
   isLoading: boolean;