Authentication 如何将aws amplify身份验证与react admin集成?
我正在尝试将aws amplify应用到我的应用程序中。 尤其是身份验证部分 而不是像这样的东西: 我希望“aws放大”中的“用户名”和“注销”按钮与默认视图非常相似: authProviderAuthentication 如何将aws amplify身份验证与react admin集成?,authentication,amazon-cognito,admin-on-rest,aws-amplify,react-admin,Authentication,Amazon Cognito,Admin On Rest,Aws Amplify,React Admin,我正在尝试将aws amplify应用到我的应用程序中。 尤其是身份验证部分 而不是像这样的东西: 我希望“aws放大”中的“用户名”和“注销”按钮与默认视图非常相似: authProvider: const App = () => ( <Admin dashboard={Dashboard} authProvider={authProvider} dataProvider={dataProvider} > <Resource
:
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>
);
const-App=()=>(
有我们可以定制的authProvider道具,但我不知道如何创建连接到aws amplify的组件。您需要为authProvider
和dataProvider
创建提供程序,这将与react admin
兼容
来自:
什么是authProvider?与数据提供程序一样,authProvider是一个处理身份验证逻辑的对象。它公开了在需要时响应管理员调用并返回承诺的方法。最简单的authProvider是:
现在,对于每个方法,我们需要从aws amplify映射方法:
import {Auth} from 'aws-amplify';
const authProvider = {
login: ({ username, password }) => Auth.signIn(username, password),
logout: Auth.signOut,
checkAuth: Auth.currentAuthenticatedUser,
};
react admin和Amplify都可以充当应用程序的容器/包装器。但是,尝试将它们合并在一起并不像使用这两个组件那么简单,因为它们会相互竞争(不幸的是)。但是,正如@Alexander所提到的,您可以使用Amplify方法来创建自定义authProvider。如果您正在寻找更多的即插即用,npm包似乎可以为您完成很多这方面的工作。它看起来相当新,但正在取得积极进展,并且似乎已经克服了您在中看到的许多初始障碍g、 您需要从authProvider内部调用aws amplify sdk。从提供给auth provider的参数中选择auth参数。这一切都是完全可配置的嘿,您有数据提供程序的任何代码示例吗?
import {Auth} from 'aws-amplify';
const authProvider = {
login: ({ username, password }) => Auth.signIn(username, password),
logout: Auth.signOut,
checkAuth: Auth.currentAuthenticatedUser,
};