如何在 react-admin 上实现忘记密码页面

How to implement forgot password page on react-admin

我在 react-admin. The authentication process was done following this tutorial 上实施了一个仪表板。

现在我需要实现一个忘记密码的屏幕,但问题是这个屏幕需要在没有登录的情况下访问...

我想到了 2 种可能的实现方式:

  1. 理想情况下,我想配置 react-admin 以允许未经身份验证的访问特定路由。不确定如何执行此操作,或者是否可能...我发现 this Github issue 将此作为增强功能提及,但并未说明如何解决该问题。
  2. 在反应中单独实现此屏幕并单独处理到此页面的路由。也不确定如何在框架上执行此操作...

有人可以解释一下如何在框架上实施任一选项吗?

提前致谢,

基于 comment on the Github issue, I ended up implementing a workaround based on the simple example.

我做的主要事情是添加一些带有 noLayout 选项的自定义路由。由于某些我在文档中找不到的原因,这些自定义路由似乎没有通过身份验证。

所以,我重新定义了我的 App.js 文件:

const App = () => (
  <Admin
        loginPage={Login}
        authProvider={authProvider}
        dataProvider={dataProvider}
        i18nProvider={i18nProvider}
        title="Example Admin"
        locale="en"
        customReducers={{ tree }}
        customRoutes={[
            <Route exact path="/forgotPassword" component={ForgotPassword} noLayout/>,
            <Route exact path="/resetPassword" component={ResetPassword} noLayout/>,
        ]}
    >
        {permissions => [
            <Resource name="users" {...users} />,
        ]}
  </Admin>
);

无论如何,这是我想出的解决方案,不确定是否正确。如果您发现更好的东西,请告诉我。

我也在使用这样的解决方案。

但是我在添加noLayout的时候不能使用notify

你有使用 notify

<Route exact path="/forgotPassword" component={ForgotPassword} noLayout/>

我遇到了类似的问题,使用 noLayout 选项添加自定义路由仍然让我进入登录屏幕。

原来不是 authProvidercheckAuth 部分造成的。

原因是 getPermissions authProvider

的一部分

在找不到权限的情况下我有: return Promise.reject();

将其更改为:return Promise.resolve([]); 帮我解决了。