如何在 RTK 查询中访问 getTokenSilently() auth0?

Yas*_*oud 5 javascript auth0 redux-toolkit rtk-query

我对使用 RTK 查询完全陌生,我之前创建了应用程序,但没有身份验证,一切正常,现在我想使用 Auth0 添加身份验证,但我无法访问我添加getTokenSilently() PS 的任何文件。getTokenSilently 是 {token} 感谢您的帮助

export const myApi = createApi({
  reducerPath: "points",
  baseQuery: fetchBaseQuery({
    baseUrl: "/",
    prepareHeaders: (headers, { getState }) => {
      const token = getState()
      if (token) {
        headers.Authorization = `Bearer ${token}`
      }

      return headers
    },
  }),
  endpoints: builder => ({
    getPoints: builder.query({
      query: () => `/`,
    }),
  }),
})

export const { useGetPointsQuery } = myApi
Run Code Online (Sandbox Code Playgroud)

小智 0

我最终做的是将令牌存储在我的状态中,然后将其添加到应用程序中:

  useEffect(() => {
    (async () => {
      try {
        const token = await getAccessTokenSilently({})
        dispatch(setToken(token))
      } catch (e) {
        console.error(e);
      }
    })()
  // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [getAccessTokenSilently])
Run Code Online (Sandbox Code Playgroud)

还有更多的逻辑可以知道您是否尚未进行身份验证,以便您可以呈现待处理的身份验证状态,但这足以让我继续下去。