如何在RTK查询中制作响应拦截器



当API的响应状态未经授权时,我需要重定向到登录屏幕并清除身份验证令牌
我可以通过向模块提供HTTP拦截器,在Angular中轻松完成这项工作,因此我正在React中的RTK Query中寻找等效的拦截器
是否有办法通过RTK查询添加全局拦截器?还是一个用于响应一组查询的拦截器
我曾想过使用transformResponse字段来实现上述逻辑,但在那里执行似乎不对,我必须将函数调用添加到每个transformResponse回调的主体中。

您可以通过包装fetchBaseQuery来实现这一点。文档中有一个用于重新授权的示例:

通过扩展fetchBaseQuery 自动重新授权


const baseQuery = fetchBaseQuery({ baseUrl: '/' })
const baseQueryWithReauth: BaseQueryFn<
  string | FetchArgs,
  unknown,
  FetchBaseQueryError
> = async (args, api, extraOptions) => {
  let result = await baseQuery(args, api, extraOptions)
  if (result.error && result.error.status === 401) {
    // your logic here
  }
  return result
}

相关内容

  • 没有找到相关文章

最新更新