如何在MERN应用程序中不存储授权的情况下实现注销功能

问题描述 投票:0回答:0

我需要创建退出用户帐户的注销功能并将用户导航到登录页面(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;
reactjs redux authorization mern express-jwt
© www.soinside.com 2019 - 2024. All rights reserved.