我正在尝试对react-admin实施 aws-amplify 。 特别是对于身份验证部分。
不是这样的: react-admin with Amplify NavBar on top
我希望从“ aws-amplify”中获得“ UserName”和“ LogOut”按钮,就像默认视图一样: default-navbar-screenshot
authProvider <code example>
:
const App = () => (
<Admin
dashboard={Dashboard}
authProvider={authProvider}
dataProvider={dataProvider}
>
<Resource name="users" list={UserList} icon={UserIcon} />
<Resource
name="posts"
list={PostList}
edit={PostEdit}
create={PostCreate}
icon={PostIcon}
/>
</Admin>
);
react-admin有一个我们可以定制的authProvider道具,但是我不知道如何创建连接到aws-amplify的组件。
答案 0 :(得分:2)
您需要为authProvider
和dataProvider
创建提供者,它们将与react-admin
兼容。
来自 the official documentation:
什么是 authProvider ?就像 dataProvider 一样, authProvider 是处理身份验证逻辑的对象。它公开了在需要时可进行react-admin调用并返回Promise的方法。最简单的authProvider是:
const authProvider = {
login: params => Promise.resolve(),
logout: params => Promise.resolve(),
checkAuth: params => Promise.resolve(),
};
现在,对于每种方法,我们都需要从aws-amplify
映射该方法:
import {Auth} from 'aws-amplify';
const authProvider = {
login: ({ username, password }) => Auth.signIn(username, password),
logout: Auth.signOut,
checkAuth: Auth.currentAuthenticatedUser,
};
答案 1 :(得分:0)
react-admin和Amplify都可以充当应用程序的容器/包装器。但是,尝试将二者合并在一起并不像同时使用这两个组件那样简单(不幸的是)。但是,正如@Alexander所述,您可以使用Amplify方法创建自定义authProvider。如果您需要更多的即插即用功能,那么react-admin-amplify npm软件包将为您做很多事情。它看起来很新,但是正在取得积极进展,似乎已经克服了您看到的许多初始障碍。