diff --git a/src/App.js b/src/App.js
index e74a6d3..e47e7e2 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,14 +1,13 @@
-// export default App;
+import React from 'react';
+import { Route, useLocation } from 'wouter';
+import { UserProvider, useUser } from './context/UserContext';
 
-import { Route } from 'wouter';
-import { Redirect } from 'wouter';
 import AuthPage from './pages/AuthPage/AuthPage';
 import HomePage from './pages/HomePage';
 import FriendMoments from './pages/FriendMoments/FriendMoments';
 import ForumPage from './pages/Forum/posts-main/ForumPage';
 import SeedList from './pages/SeedList/SeedList';
 import PostDetailPage from './pages/Forum/posts-detail/PostDetailPage';
-import { UserProvider } from './context/UserContext';
 import { GroupProvider } from './context/useGroupStore';
 import PublishSeed from './pages/PublishSeed/PublishSeed';
 import SeedDetail from './pages/SeedList/SeedDetail/SeedDetail';
@@ -17,10 +16,9 @@
 import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
 import MessagePage from './pages/MessagePage/MessagePage';
 import CreateMoment from './pages/FriendMoments/CreateMoment';
-import PromotionsPage from './pages/PromotionsPage/PromotionsPage';
 import LevelPage from './pages/LevelPage/LevelPage';
 import NewbieTasks from './pages/UserCenter/NewbieTasks';
-// import UserDynamics from './pages/UserCenter/UserDynamics';
+import UserDynamics from './pages/UserCenter/UserDynamics';
 import UserFriends from './pages/UserCenter/UserFriends';
 import UserCollect from './pages/UserCenter/UserCollect';
 import UserInvite from './pages/UserCenter/UserInvite';
@@ -34,47 +32,66 @@
   return null;
 }
 
+// 私有路由保护组件
+function PrivateRoute({ component: Component }) {
+  const [location, setLocation] = useLocation();
+  const { user, loading } = useUser();
+
+  if (loading) {
+    return <div>加载中...</div>;
+  }
+
+  if (!user) {
+    setLocation('/auth');
+    return null;
+  }
+
+  return <Component />;
+}
+
 function App() {
   return (
     <UserProvider>
       <GroupProvider>
         <>
-          <Route path="/" component={RedirectToAuth} />
+          {/* 公开路由 */}
           <Route path="/auth" component={AuthPage} />
-          <Route path="/friend-moments" component={FriendMoments} />
-          <Route path="/friend-moments/create" component={CreateMoment} />
-          <Route path="/forum" component={ForumPage} />
-          <Route path="/forum/post/:postId" component={PostDetailPage} />
-          <Route path="/forum/create-post" component={CreatePostPage} />
-          <Route path="/seed-list" component={SeedList} />
-          <Route path="/publish-seed" component={PublishSeed} />
-          {/* <Route path="/publish-seed" component={SimpleUploader} /> */}
-          <Route path="/seed/:id" component={SeedDetail} />
-          <Route path="/interest-groups" component={InterestGroup} />
-          <Route path="/messages" component={MessagePage} />
-          <Route path="/promotions" component={PromotionsPage} />
-          <Route path="/level" component={LevelPage} />
-          <Route path="/information/:userId" component={UserInfo} />
 
+          {/* 根路径跳转到登录页 */}
+          <Route path="/" component={() => <RedirectToAuth />} />
 
-          {/* 用户中心嵌套路由模拟 */}
+          {/* 私有路由用 PrivateRoute 包裹 */}
+          <Route path="/friend-moments" component={() => <PrivateRoute component={FriendMoments} />} />
+          <Route path="/friend-moments/create" component={() => <PrivateRoute component={CreateMoment} />} />
+          <Route path="/forum" component={() => <PrivateRoute component={ForumPage} />} />
+          <Route path="/forum/post/:postId" component={({ postId }) => <PrivateRoute component={() => <PostDetailPage postId={postId} />} />} />
+          <Route path="/forum/create-post" component={() => <PrivateRoute component={CreatePostPage} />} />
+          <Route path="/seed-list" component={() => <PrivateRoute component={SeedList} />} />
+          <Route path="/publish-seed" component={() => <PrivateRoute component={PublishSeed} />} />
+          <Route path="/seed/:id" component={({ id }) => <PrivateRoute component={() => <SeedDetail id={id} />} />} />
+          <Route path="/interest-groups" component={() => <PrivateRoute component={InterestGroup} />} />
+          <Route path="/messages" component={() => <PrivateRoute component={MessagePage} />} />
+          <Route path="/level" component={() => <PrivateRoute component={LevelPage} />} />
+          <Route path="/information/:userId" component={({ userId }) => <PrivateRoute component={() => <UserInfo userId={userId} />} />} />
+
+          {/* 用户中心路由 */}
           <Route path="/user/profile" component={() => (
-            <UserLayout><UserProfile /></UserLayout>
+            <PrivateRoute component={() => <UserLayout><UserProfile /></UserLayout>} />
           )} />
           <Route path="/user/newbie-tasks" component={() => (
-            <UserLayout><NewbieTasks /></UserLayout>
+            <PrivateRoute component={() => <UserLayout><NewbieTasks /></UserLayout>} />
           )} />
-          {/* <Route path="/user/dynamics" component={() => (
-            <UserLayout><UserDynamics /></UserLayout>
-          )} /> */}
+          <Route path="/user/dynamics" component={() => (
+            <PrivateRoute component={() => <UserLayout><UserDynamics /></UserLayout>} />
+          )} />
           <Route path="/user/friends" component={() => (
-            <UserLayout><UserFriends /></UserLayout>
+            <PrivateRoute component={() => <UserLayout><UserFriends /></UserLayout>} />
           )} />
           <Route path="/user/collections" component={() => (
-            <UserLayout><UserCollect /></UserLayout>
+            <PrivateRoute component={() => <UserLayout><UserCollect /></UserLayout>} />
           )} />
           <Route path="/user/invite" component={() => (
-            <UserLayout><UserInvite /></UserLayout>
+            <PrivateRoute component={() => <UserLayout><UserInvite /></UserLayout>} />
           )} />
         </>
       </GroupProvider>
@@ -83,3 +100,90 @@
 }
 
 export default App;
+
+
+// // export default App;
+
+// import { Route } from 'wouter';
+// import { Redirect } from 'wouter';
+// import AuthPage from './pages/AuthPage/AuthPage';
+// import HomePage from './pages/HomePage';
+// import FriendMoments from './pages/FriendMoments/FriendMoments';
+// import ForumPage from './pages/Forum/posts-main/ForumPage';
+// import SeedList from './pages/SeedList/SeedList';
+// import PostDetailPage from './pages/Forum/posts-detail/PostDetailPage';
+// import { UserProvider } from './context/UserContext';
+// import { GroupProvider } from './context/useGroupStore';
+// import PublishSeed from './pages/PublishSeed/PublishSeed';
+// import SeedDetail from './pages/SeedList/SeedDetail/SeedDetail';
+// import InterestGroup from './pages/InterestGroup/InterestGroup';
+// import UserProfile from './pages/UserCenter/UserProfile';
+// import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
+// import MessagePage from './pages/MessagePage/MessagePage';
+// import CreateMoment from './pages/FriendMoments/CreateMoment';
+// // import PromotionsPage from './pages/PromotionsPage/PromotionsPage';
+// import LevelPage from './pages/LevelPage/LevelPage';
+// import NewbieTasks from './pages/UserCenter/NewbieTasks';
+// import UserDynamics from './pages/UserCenter/UserDynamics';
+// import UserFriends from './pages/UserCenter/UserFriends';
+// import UserCollect from './pages/UserCenter/UserCollect';
+// import UserInvite from './pages/UserCenter/UserInvite';
+// import UserInfo from './pages/UserInfo/UserInfo';
+// import UserLayout from './pages/UserCenter/UserLayout';
+
+// function RedirectToAuth() {
+//   if (typeof window !== 'undefined') {
+//     window.location.replace('/auth');
+//   }
+//   return null;
+// }
+
+// function App() {
+//   return (
+//     <UserProvider>
+//       <GroupProvider>
+//         <>
+//           <Route path="/" component={RedirectToAuth} />
+//           <Route path="/auth" component={AuthPage} />
+//           <Route path="/friend-moments" component={FriendMoments} />
+//           <Route path="/friend-moments/create" component={CreateMoment} />
+//           <Route path="/forum" component={ForumPage} />
+//           <Route path="/forum/post/:postId" component={PostDetailPage} />
+//           <Route path="/forum/create-post" component={CreatePostPage} />
+//           <Route path="/seed-list" component={SeedList} />
+//           <Route path="/publish-seed" component={PublishSeed} />
+//           {/* <Route path="/publish-seed" component={SimpleUploader} /> */}
+//           <Route path="/seed/:id" component={SeedDetail} />
+//           <Route path="/interest-groups" component={InterestGroup} />
+//           <Route path="/messages" component={MessagePage} />
+//           {/* <Route path="/promotions" component={PromotionsPage} /> */}
+//           <Route path="/level" component={LevelPage} />
+//           <Route path="/information/:userId" component={UserInfo} />
+
+
+//           {/* 用户中心嵌套路由模拟 */}
+//           <Route path="/user/profile" component={() => (
+//             <UserLayout><UserProfile /></UserLayout>
+//           )} />
+//           <Route path="/user/newbie-tasks" component={() => (
+//             <UserLayout><NewbieTasks /></UserLayout>
+//           )} />
+//           <Route path="/user/dynamics" component={() => (
+//             <UserLayout><UserDynamics /></UserLayout>
+//           )} />
+//           <Route path="/user/friends" component={() => (
+//             <UserLayout><UserFriends /></UserLayout>
+//           )} />
+//           <Route path="/user/collections" component={() => (
+//             <UserLayout><UserCollect /></UserLayout>
+//           )} />
+//           <Route path="/user/invite" component={() => (
+//             <UserLayout><UserInvite /></UserLayout>
+//           )} />
+//         </>
+//       </GroupProvider>
+//     </UserProvider>
+//   );
+// }
+
+// export default App;
