feat: 处理语法校验

This commit is contained in:
笔记本里的永平
2025-07-07 14:29:28 +08:00
parent 5b8969f4a6
commit c29fbd1bbb
11 changed files with 11884 additions and 44 deletions

View File

@@ -65,6 +65,21 @@ export function AuthProvider({ children }: AuthProviderProps) {
const [isInitialized, setIsInitialized] = useState(false);
const navigate = useNavigate();
// 先声明handleLogout避免useEffect依赖提前引用
const handleLogout = () => {
// 先清除所有认证相关的状态
safeLocalStorage.removeItem("token");
safeLocalStorage.removeItem("token_expired");
safeLocalStorage.removeItem("s2_accountId");
safeLocalStorage.removeItem("userInfo");
safeLocalStorage.removeItem("user");
setToken(null);
setUser(null);
setIsAuthenticated(false);
// 跳转到登录页面
navigate('/login');
};
// 检查token是否过期
const isTokenExpired = (): boolean => {
const tokenExpired = safeLocalStorage.getItem("token_expired");
@@ -184,22 +199,7 @@ export function AuthProvider({ children }: AuthProviderProps) {
}, 60000); // 每分钟检查一次
return () => clearInterval(checkTokenInterval);
}, [isAuthenticated]);
const handleLogout = () => {
// 先清除所有认证相关的状态
safeLocalStorage.removeItem("token");
safeLocalStorage.removeItem("token_expired");
safeLocalStorage.removeItem("s2_accountId");
safeLocalStorage.removeItem("userInfo");
safeLocalStorage.removeItem("user");
setToken(null);
setUser(null);
setIsAuthenticated(false);
// 跳转到登录页面
navigate('/login');
};
}, [isAuthenticated, handleLogout]);
const login = (newToken: string, userData: User) => {
safeLocalStorage.setItem("token", newToken);