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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Redux中使用Auth0 JWT访问API?相关的知识,希望对你有一定的参考价值。

我正在使用Auth0通过JWT保护我的API端点。 “ useAuth0()。getTokenSilently()”是一个上下文挂钩,它引发“错误:无效的挂钩调用”,因为我是在js文件而不是React组件中调用它;我不确定如何解决这个问题。任何建议将不胜感激。 :)

// 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);
  }
};
答案
因此,无论您想在哪里使用useAuth0(),都必须确保该组件是Auth0Provider的子级。

我目前通过调用getTokenSilently使用它,然后直接将其设置为axios的标头,而无需为我的API进行重新处理。

[如果您确实有使用独立方法编写此方法的方法,请告诉我,因为我也有兴趣在单独的方法中编写此方法。

以上是关于如何在Redux中使用Auth0 JWT访问API?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中打印受 Auth0-JWT 保护的私有 API 端点 JSON 对象?

如何从 auth0 中的访问令牌中获取 jwt 令牌

我如何模拟 auth0 身份验证以进行测试?

如何使用 auth0 jwt 识别用户

Auth0 NodeJS JWT 身份验证在移动应用程序的 API 中

如何使用 redux-saga 在 API 响应中检查过期的 JWT 令牌?