如何在 react-admin 上实现忘记密码页面
How to implement forgot password page on react-admin
我在 react-admin. The authentication process was done following this tutorial 上实施了一个仪表板。
现在我需要实现一个忘记密码的屏幕,但问题是这个屏幕需要在没有登录的情况下访问...
我想到了 2 种可能的实现方式:
- 理想情况下,我想配置 react-admin 以允许未经身份验证的访问特定路由。不确定如何执行此操作,或者是否可能...我发现 this Github issue 将此作为增强功能提及,但并未说明如何解决该问题。
- 在反应中单独实现此屏幕并单独处理到此页面的路由。也不确定如何在框架上执行此操作...
有人可以解释一下如何在框架上实施任一选项吗?
提前致谢,
基于 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
选项添加自定义路由仍然让我进入登录屏幕。
原来不是 authProvider
的 checkAuth
部分造成的。
原因是 getPermissions
authProvider
的一部分
在找不到权限的情况下我有:
return Promise.reject();
将其更改为:return Promise.resolve([]);
帮我解决了。
我在 react-admin. The authentication process was done following this tutorial 上实施了一个仪表板。
现在我需要实现一个忘记密码的屏幕,但问题是这个屏幕需要在没有登录的情况下访问...
我想到了 2 种可能的实现方式:
- 理想情况下,我想配置 react-admin 以允许未经身份验证的访问特定路由。不确定如何执行此操作,或者是否可能...我发现 this Github issue 将此作为增强功能提及,但并未说明如何解决该问题。
- 在反应中单独实现此屏幕并单独处理到此页面的路由。也不确定如何在框架上执行此操作...
有人可以解释一下如何在框架上实施任一选项吗?
提前致谢,
基于 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
选项添加自定义路由仍然让我进入登录屏幕。
原来不是 authProvider
的 checkAuth
部分造成的。
原因是 getPermissions
authProvider
在找不到权限的情况下我有:
return Promise.reject();
将其更改为:return Promise.resolve([]);
帮我解决了。