簡體   English   中英

如何在 RTK Query 中制作響應攔截器

[英]How to make a response interceptor in RTK Query

當來自 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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM