我在react-admin上实现了一个仪表板。认证过程是在this tutorial之后完成的。
现在我需要实现一个忘记密码屏幕,但是问题在于,无需登录即可访问该屏幕...
我想到了两种可能的实现方法:
有人可以解释如何在框架上实现这两个选项吗?
预先感谢
答案 0 :(得分:1)
基于有关Github问题的comment,我最终基于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>
);
无论如何,这是我想出的解决方案,不确定是否正确。如果您发现更好的地方,请告诉我。
答案 1 :(得分:1)
我遇到类似的问题,并且使用noLayout
选项添加自定义路由仍然使我进入登录屏幕。
事实证明,这并不是造成checkAuth
的{{1}}部分。
原因是authProvider
的{{1}}
在找不到权限的情况下,我拥有:
getPermissions
将其更改为:authProvider
为我解决了此问题。
答案 2 :(得分:0)
我也在使用这样的解决方案。
但是添加notify
时我不能使用noLayout
。
您是否已将notify
与
<Route exact path="/forgotPassword" component={ForgotPassword} noLayout/>