我需要创建退出用户帐户的注销功能并将用户导航到登录页面(onClick)
<MenuList>
<MenuItem sx={{ color: theme.palette.text.disabled }} onClick={() => dispatch(setLogout())} >
<ListItemIcon sx={{ color: theme.palette.text.disabled }}>
<ExitToAppOutlinedIcon />
</ListItemIcon>
<ListItemText
primary="Выйти"
secondary="Выйти из вашего аккаунта"
/>
</MenuItem>
</MenuList>
目前exit函数只是让应用态(Redux)的用户信息失效。困难在于,当通过点击浏览器中的按钮返回上一页退出帐户时,用户也没有被授权(这在使用浏览器历史记录时也是必要的)。
授权减速器:
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
user: null,
token: null,
mode: "dark",
userId: "63701cc1f03239c72c000180",
}
export const authSlice = createSlice({
name: "auth",
initialState,
reducers: {
setLogin: (state, action) => {
state.user = action.payload.user;
state.token = action.payload.token;
},
setLogout: (state) => {
state.user = null;
state.token = null;
},
setMode: (state) => {
state.mode = state.mode === 'light' ? "dark" : 'light';
},
}
})
export const { setLogin, setLogout, setClients, setMode } = authSlice.actions;
export default authSlice.reducer;