diff --git a/src/app/user/page.tsx b/src/app/user/page.tsx
index 8201bc5..4baef17 100644
--- a/src/app/user/page.tsx
+++ b/src/app/user/page.tsx
@@ -5,12 +5,12 @@
 import { Avatar } from 'primereact/avatar';
 import { Button } from 'primereact/button';
 import { Card } from 'primereact/card';
-import {Image} from "primereact/image";
+import { Image } from "primereact/image";
 // 发布资源
 import { Dialog } from 'primereact/dialog';
-import {InputText} from "primereact/inputtext";
-import {InputTextarea} from "primereact/inputtextarea";
-import {FileUpload} from "primereact/fileupload";
+import { InputText } from "primereact/inputtext";
+import { InputTextarea } from "primereact/inputtextarea";
+import { FileUpload } from "primereact/fileupload";
 // 资源分类
 import { RadioButton, RadioButtonChangeEvent } from "primereact/radiobutton";
 // 资源标签
@@ -30,10 +30,14 @@
 
 // 接口传输
 import axios from "axios";
-
+import { useLocalStorage } from '../hook/useLocalStorage';
 // 样式
 import './user.scss';
 
+interface User {
+    Id: number;
+};
+
 // 用户信息
 interface UserInfo {
     userId: number;
@@ -42,7 +46,7 @@
     avatar: string;
     followerCount: number;// 粉丝数
     subscriberCount: number;// 关注数
-    signature:  string;// 个性签名
+    signature: string;// 个性签名
     uploadAmount: number;
     purchaseAmount: number;
     credits: number;
@@ -50,9 +54,9 @@
 
 // 用户数据
 interface UserData {
-    subscriberCount:  number; // 关注数
-    uploadAmount:  number; // 上传量（资源个数）
-    beDownloadedAmount:  number; // 上传资源被下载量
+    subscriberCount: number; // 关注数
+    uploadAmount: number; // 上传量（资源个数）
+    beDownloadedAmount: number; // 上传资源被下载量
     seedPercentageList: number[]; // 上传资源类型百分比列表，按材质包、模组、整合包、地图的顺序返回
 }
 
@@ -60,17 +64,17 @@
 interface Resource {
     resourceId: number;
     resourceName: string;
-    resourcePicture:  string;
-    resourceSummary:  string; // 资源简介（一句话）
+    resourcePicture: string;
+    resourceSummary: string; // 资源简介（一句话）
     resourceDetail: string; // 资源介绍
     uploadTime: string; // 上传时间
-    lastUpdateTime:  string; // 最近更新时间
-    price:  number;
-    downloads:  number;
-    likes:   number;
+    lastUpdateTime: string; // 最近更新时间
+    price: number;
+    downloads: number;
+    likes: number;
     collections: number;
     comments: number;
-    seeds:  number; // 种子数
+    seeds: number; // 种子数
     classify: string; // 资源分类(材质包：resourcePack,模组：mod,整合包：modPack ,地图：map
 }
 
@@ -139,6 +143,9 @@
 ];
 
 export default function UserPage() {
+    const user = useLocalStorage<User>('user');
+    const userId: number = user?.Id ?? -1;
+
     // 路由
     const router = useRouter();
     // 发布资源列表
@@ -188,7 +195,7 @@
     const fetchUserInfo = async () => {
         try {
             const response = await axios.get<UserInfo>(process.env.PUBLIC_URL + `/user/info`, {
-                params: { userId: 22301010 }
+                params: { userId }
             });
             console.log('获取用户信息：', response.data);
             setUserInfo(response.data);
@@ -202,7 +209,7 @@
     const fetchUserData = async () => {
         try {
             const response = await axios.get<UserData>(process.env.PUBLIC_URL + `/user/data`, {
-                params: { userId: 22301010 }
+                params: { userId }
             });
             console.log('获取用户数据：', response.data);
             setUserData(response.data);
@@ -233,8 +240,8 @@
     // 获取发布资源
     const fetchResourceList = async () => {
         try {
-            const response = await axios.get<ResourceList>(process.env.PUBLIC_URL +`/user/upload`, {
-                params: { userId: 22301010, pageNumber: 1, rows: 3 }
+            const response = await axios.get<ResourceList>(process.env.PUBLIC_URL + `/user/upload`, {
+                params: { userId, pageNumber: 1, rows: 3 }
             });
             console.log('获取发布资源列表：', response.data.records);
             setResourceList(response.data.records);
@@ -307,22 +314,22 @@
     const actions = [
         {
             template: () => (
-                <Button  label="管理资源" onClick={() => router.push(`/user/manage/resources/`)}/>
+                <Button label="管理资源" onClick={() => router.push(`/user/manage/resources/`)} />
             )
         },
         {
             template: () => (
-                <Button  label="已购资源" onClick={() => router.push(`/user/purchased-resources/`)}/>
+                <Button label="已购资源" onClick={() => router.push(`/user/purchased-resources/`)} />
             )
         },
         {
             template: () => (
-                <Button  label="发布资源" onClick={() => setVisible(true)}/>
+                <Button label="发布资源" onClick={() => setVisible(true)} />
             )
         },
         {
             template: () => (
-                <Button  label="编辑悬赏" onClick={() => router.push(`/user/manage/resources/`)}/>
+                <Button label="编辑悬赏" onClick={() => router.push(`/user/manage/resources/`)} />
             )
         }
     ];
@@ -456,7 +463,7 @@
                 },
                 gameplayList: resourceFormData.gameplayList,
                 completeRewardId: null,
-                userId: 22301010, // 记得用户登录状态获取
+                userId, // 记得用户登录状态获取
             };
             // 发送POST请求
             const response = await axios.post(process.env.PUBLIC_URL + '/resource', postData);
@@ -534,7 +541,7 @@
                         </div>
                     </div>
 
-                    <Button label="关注" className="action-button"/>
+                    <Button label="关注" className="action-button" />
                 </div>
             </div>
 
