diff --git a/Merge/front/src/pages/LoginPage/LoginPage.js b/Merge/front/src/pages/LoginPage/LoginPage.js
index 31453a4..bdd75d0 100644
--- a/Merge/front/src/pages/LoginPage/LoginPage.js
+++ b/Merge/front/src/pages/LoginPage/LoginPage.js
@@ -1,4 +1,5 @@
 // src/pages/LoginPage/LoginPage.jsx
+
 import React, { useState, useEffect } from 'react'
 import { useNavigate, Link } from 'react-router-dom'
 import { Input, Checkbox, Modal, Alert } from 'antd'
@@ -12,7 +13,8 @@
   getRememberedLoginInfo,
   saveRememberedLoginInfo,
   saveAuthInfo,
-  isLoggedIn
+  isLoggedIn,
+  clearAuthInfo           // ← 新增
 } from '../../utils/auth'
 import { hashPassword } from '../../utils/crypto'
 import './LoginPage.css'
@@ -22,6 +24,11 @@
 export default function LoginPage() {
   const navigate = useNavigate()
 
+  // —— 登录页加载时先清除旧的认证信息 —— 
+  useEffect(() => {
+    clearAuthInfo(/* clearRemembered= */ false)
+  }, [])
+
   const [formData, setFormData] = useState({
     email: '',
     password: ''
@@ -59,15 +66,14 @@
   useEffect(() => {
     if (isLoggedIn()) {
       console.log('用户已登录')
-      // 如果要自动跳转可以在这里：
-      // navigate('/home', { replace: true })
+      // 如果想自动跳转： navigate('/home', { replace: true })
     }
     const { email, password, rememberMe } = getRememberedLoginInfo()
     if (rememberMe && email) {
       setFormData({ email, password })
       setRememberMe(true)
     }
-  }, [navigate])
+  }, [])
 
   const handleEmailChange = (e) => {
     setFormData(f => ({ ...f, email: e.target.value }))
@@ -120,13 +126,13 @@
         saveAuthInfo(result.token, result.user, rememberMe)
         saveRememberedLoginInfo(formData.email, formData.password, rememberMe)
         setTimeout(() => {
-        // 根据不同角色跳转
+          const uid = result.user.id
           switch (result.user.role) {
             case 'admin':
-              navigate('/admin', { replace: true })
+              navigate(`/admin/${uid}`, { replace: true })
               break
             case 'superadmin':
-              navigate('/superadmin', { replace: true })
+              navigate(`/superadmin/${uid}/users`, { replace: true })
               break
             default:
               navigate('/home', { replace: true })
