Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React admin,如何正确处理dataProvider上的身份验证错误?_Javascript_Reactjs_React Admin_Postgraphile - Fatal编程技术网

Javascript React admin,如何正确处理dataProvider上的身份验证错误?

Javascript React admin,如何正确处理dataProvider上的身份验证错误?,javascript,reactjs,react-admin,postgraphile,Javascript,Reactjs,React Admin,Postgraphile,我正在尝试将经过身份验证的数据提供程序集成到React Admin中,但是当数据提供程序还没有来自身份验证提供程序的有效身份验证令牌时,我遇到了问题 我正在使用 我实例化数据提供程序的代码如下所示: const dataProvider = buildPostgraphileProvider({ apolloHttpLinkOptions: { uri: `http://localhost:5433/graphql`, fetch: (url, options) =>

我正在尝试将经过身份验证的数据提供程序集成到React Admin中,但是当数据提供程序还没有来自身份验证提供程序的有效身份验证令牌时,我遇到了问题

我正在使用

我实例化数据提供程序的代码如下所示:

const dataProvider = buildPostgraphileProvider({
  apolloHttpLinkOptions: {
    uri: `http://localhost:5433/graphql`,
    fetch: (url, options) => {
      // You can add custom auth logic with a wrapper around fetch
      const token = localStorage.getItem("token");

      if (!token) {
        return;
      }
      if (jwt.decode(token).exp < Date.now()) {
        localStorage.removeItem("token");
        return;
      }

      const headers = {
        ...options.headers,
        authorization: `bearer ${token}`
      };
      return fetch(url, { ...options, headers });
    }
  }
});
console.log(dataProvider);
我还尝试在不存在令牌时返回HTTPError:

return new HttpError("denied", 403, { status: 403 });
得到了一个不同的结果:

未处理的拒绝(错误):网络错误:获取程序(…)。then不是函数

return new HttpError("denied", 403, { status: 403 });