我有一个登录页面,/panel如果登录成功并返回一个 accessToken ,它会重定向到一个私人页面。我正在使用 Redux 商店来检查 privateRoute 组件中的令牌。
我面临的问题:
我想
/panel使用退出图标实现从页面注销。如果我尝试在组合减速器中添加另一个减速器,则会出现 TypeScript 错误。从退出图标实现注销的最佳方法是什么?我应该在开关中使用相同的
tokenReducer添加LOGOUT案例吗?商店中的 accessToken 需要以某种方式删除。要删除状态中的有效负载,我应该使用过滤器吗?但具体在哪里?由于我使用了持久化,所以 accessToken 保留在本地存储中。因此,即使我重新加载代码和框(或终止并在本地主机中重新运行我的应用程序),下一次,我
/panel甚至无需登录就可以访问。
代码沙盒:
https://codesandbox.io/s/frosty-shannon-0ivez?file=/src/store/reducers/index.ts
邮箱:c@c.com
密码:检查
唯一的主要区别是,在原始代码中,我没有手动编写 accessToken,而是运行了 GraphQL 突变。如果登录成功,则返回一个 accessToken 并发送如下:
dispatch({ type: 'LOGIN', payload: data.loginEmail.accessToken });
哪里loginEmail是突变,accessToken是返回的字符串。如果有人可以复制沙盒并指导我,那就太好了。