Auth0 React SPA的API错误访问令牌

时间:2019-11-22 16:07:49

标签: reactjs jwt auth0

因此,我已经阅读了一些有关此的SO问题,并阅读了许多Auth0教程,但是我仍然无法获得访问令牌以与我的自定义API一起使用。

我已经遵循了React的Auth0 SPA教程。 然后,我遵循了“从单页应用程序调用API”教程。 我创建了一个“ auth0-authorization-extension-api”。 我启用了对自定义API的API访问权限。

我觉得我已经完成了必要的步骤,但是我觉得我缺少如何从我的React客户端请求正确的访问令牌的机会。

我的Axios自定义挂钩在useEffect内包含以下代码:

const send = async () => {
  try {
    await getTokenSilently().then(async (token: string) => {
      const config = {
        method: method as "GET" | "POST",
        withCredentials: true,
        data: providedData,
        headers: {
          Authorization: "Bearer " + token
        }
      };
      const result = await axios(address + uri, config);
    });
  } catch (error) {
    if (!canceled) {
      dispatch({ type: "FETCH_FAILURE" });
    }
  }
};

发送到我的API的访问令牌不是完整的jwt,而是一串数字和字母,长度约为35位。

每次我从自定义API中收到错误UnauthorizedError: jwt malformed

我的React SPA受众为http://localhost:3000,API受众为http://localhost:8080

我在这里错过了一些简单的东西吗?还是我看错地方了?

1 个答案:

答案 0 :(得分:2)

您获得的访问令牌只是一个纯随机字符串。 使用Auth0,如果要将JWT作为访问令牌,则必须indicate the audience,即API标识符。