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
这对我来说看起来更简单,但这更像是一个“黑客”?
我走对了吗?是更好的选择吗?