更新路由守卫
Change-Id: Iddd1d006202a03e8a97e3a90d64d9a43c5d2cb78
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 })