首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用redux-thunk捕获错误

使用redux-thunk捕获错误
EN

Stack Overflow用户
提问于 2018-05-15 21:33:36
回答 1查看 1.1K关注 0票数 0

我正在使用redux-thunk在我的React应用程序中进行API调用。

每隔30分钟,用户的持有者令牌就会过期,我调用auth/refresh,而不是强制他们重新登录。这很痛苦,因为我需要在每次调用时检查401 error。有没有办法使用redux/redux-thunk在一个地方检查这个错误,而不是在每个调用中?

我有一个额外的问题,如果发生多个调用,每次都会调用相同的刷新,因此我最终会多次刷新承载令牌!

我刷新auth标记的操作:

代码语言:javascript
复制
export const refreshAuth = () => {
  return (dispatch, getState) => {
    return axios.post(API.path + 'auth/refresh/?' + API.beaconAPI_client, { 'refreshToken': getState().login.refreshToken })
    .then(response => {
        dispatch({
            type: DO_LOGIN_REFRESH,
            userDetails: response.data
        })
    })
}

}

使用Axios,如果发生错误,我会这样做:

代码语言:javascript
复制
.catch(error => {
  if(error.response.status === 401){
    this.props.refreshAuth()
    .then(response => {
        /* In the response, make the request again after auth is refreshed */
    })
  }
})
EN

回答 1

Stack Overflow用户

发布于 2018-05-15 22:24:34

您可以使用Axios interceptors将这些处理程序放在一个位置。

代码语言:javascript
复制
axios.interceptors.response.use(null, error => {
  switch (error.response.status) {
    case 401:
    // [Unauthorized] - Wrong or no authentication ID/password provided
    store.dispatch(actionToRefreshToken());
    break;
  default:
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50351630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档