Reactjs 如何在redux中使用Auth0 JWT访问API?

Reactjs 如何在redux中使用Auth0 JWT访问API?,reactjs,authentication,redux,auth0,Reactjs,Authentication,Redux,Auth0,我正在使用Auth0通过JWT保护我的API端点。“useAuth0().getTokenSilently()”是一个上下文钩子,它抛出“error:Invalid hook call”,因为我在js文件中而不是在React组件中调用它;我不知道如何处理这个问题。如有任何建议,将不胜感激。:) 钩子只能在函数组件的主体内部调用。此挂钩需要一个父组件,该组件包装了一个提供程序,以提供getTokensilenly()的上下文 因此,无论在何处使用useAuth0(),都必须确保该组件是Auth0P

我正在使用Auth0通过JWT保护我的API端点。“useAuth0().getTokenSilently()”是一个上下文钩子,它抛出“error:Invalid hook call”,因为我在js文件中而不是在React组件中调用它;我不知道如何处理这个问题。如有任何建议,将不胜感激。:)


钩子只能在函数组件的主体内部调用。此挂钩需要一个父组件,该组件包装了一个提供程序,以提供getTokensilenly()的上下文

因此,无论在何处使用useAuth0(),都必须确保该组件是Auth0Provider的子组件

目前,我通过调用getTokensilenly来使用它,然后直接将它设置为axios的头,而不使用我的API的redux

如果你有办法用一个独立的方法写这篇文章,一定要让我知道,因为我也对用一个单独的方法写这篇文章感兴趣

// Actions.js

export const fetchIssues = () => async (dispatch) => {

  try {
    const token = await useAuth0().getTokenSilently(); // this line is throwing the error.

    const response = await api.get("issues", {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    });

    const responseData = await response.json();

    dispatch({ type: FETCH_ISSUES, payload: responseData });
  } catch (error) {
    console.log(error);
  }
};