首页 > 解决方案 > React-admin dataProvider 不会触发 authProvider 的 AUTH_ERROR

问题描述

下午好,所有 react-admin 用户。我正在使用这个很棒的开源项目,我已经挣扎了好几个小时。

如文档中所述,如果任何 API 调用返回任何错误,authProvider 将使用 AUTH_ERROR 类型捕获它。但是,在我的情况下, authProvider 没有被触发。谢谢您阅读此篇。任何帮助将非常感激。

身份验证提供者:

export default async(type, params) => {
  if (type === AUTH_ERROR) console.log('testing')
}

数据提供者:

class dataProviderHttpError extends Error {
  constructor(status, message) {
    super(message)
    this.status = status
  }
}

export default (type, resource, params) => {
  return Promise.reject(new dataProviderHttpError(401, 'testing'))
}

行政

import dataProvider from './dataProvider'

<Admin
  dataProvider={dataProvider}
/>

标签: react-admin

解决方案


authProvider 将捕获您让它侦听的任何身份验证错误并返回 aPromise.reject()
在您的示例中,您只需告诉 authProvider 在控制台上显示某些内容,然后在 dataProvider 上尝试返回 a Promice.reject()
这是您的 authProvider 的任务,而不是您的 dataProvider。您可以在此处
再次查看文档中解释如何处理 authProvider 上的 AUTH_ERRORS 的部分。


推荐阅读