修复令牌验证逻辑,修改管理员dashboard,增加退出登录功能
Change-Id: I6a832763126dffd28733269044a1b1956c5b1106
diff --git a/Merge/front/src/components/UserProfile.jsx b/Merge/front/src/components/UserProfile.jsx
index 8421997..53618db 100644
--- a/Merge/front/src/components/UserProfile.jsx
+++ b/Merge/front/src/components/UserProfile.jsx
@@ -29,7 +29,8 @@
useTheme,
CircularProgress,
Snackbar,
- Alert
+ Alert,
+ Menu
} from '@mui/material';
import { useParams } from 'react-router-dom';
import {
@@ -123,6 +124,7 @@
const [isEditing, setIsEditing] = useState(false);
const [followers, setFollowers] = useState([]);
const [snackbar, setSnackbar] = useState({ open: false, message: '', severity: 'success' });
+ const [anchorEl, setAnchorEl] = useState(null);
// 用户数据状态
const [currentUser, setCurrentUser] = useState(null);
@@ -149,6 +151,8 @@
location: ''
});
+ const menuOpen = Boolean(anchorEl);
+
// 显示提示信息
const showSnackbar = (message, severity = 'success') => {
setSnackbar({ open: true, message, severity });
@@ -390,6 +394,16 @@
navigate(`/user/${userId}`);
};
+ const handleMenuOpen = (e) => setAnchorEl(e.currentTarget);
+ const handleMenuClose = () => setAnchorEl(null);
+ const handleLogout = () => {
+ handleMenuClose();
+ // 清理本地存储
+ localStorage.clear();
+ // 在此处添加退出登录逻辑,比如清理本地存储并跳转
+ navigate('/login');
+ };
+
if (loading) {
return (
<Box sx={{
@@ -531,9 +545,18 @@
>
{profileUser.is_following ? '已关注' : '关注'}
</Button>
- <IconButton sx={{ ml: 1 }}>
+ <IconButton sx={{ ml: 1 }} onClick={handleMenuOpen}>
<MoreVert />
</IconButton>
+ <Menu
+ anchorEl={anchorEl}
+ open={menuOpen}
+ onClose={handleMenuClose}
+ anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
+ transformOrigin={{ vertical: 'top', horizontal: 'right' }}
+ >
+ <MenuItem onClick={handleLogout}>退出登录</MenuItem>
+ </Menu>
</>
)}
</Box>