4

unauthorised在 redux 和 redux-observable中如何处理的一些新手问题

我有一个应用程序,用户必须经过身份验证才能向 api 发出请求。
如果用户提供的令牌无效,则端点返回 401 http 错误代码。

那么我该如何优雅地处理这个(我正在使用 fetch)?

选项1:

  • 创建某种函数,我将使用该函数将所有 api 调用包装在史诗中,它将 401 响应转换为类似NotLoggedInAction
  • 创建一个reducer来处理NotLoggedInAction和设置用户未登录状态的标志
  • 订阅根组件 (?) 中的状态更改并检查未登录标志
  • 如果未登录标志到达,将用户重定向到登录页面(登录页面是外部应用程序,所以我会使用window.location.href?)

这个选项有点灵活,因为在重定向之前我可以显示一些弹出窗口,比如“嘿,你的会话已过期等”。
但它也不容易出错(我必须始终将错误处理连接到每个调用,并在每个史诗中添加依赖项NotLoggedInAction

选项 2:
- 在 combineEpics 中使用do并注意错误 - 如果 401 到达,只需将用户重定向到登录页面(通过相同的window.location.href

这对我来说看起来更简单,但这更像是一个“黑客”?

我走对了吗?是更好的选择吗?

4

0 回答 0