当前无用户AWS Amplify身份验证错误-无需登录即可访问

时间:2020-02-12 00:35:11

标签: reactjs authentication graphql aws-amplify

目标

使用AWS Amplify启动基于React的订单。由于可能是身份验证问题,当前无法将条目提交到数据库。

我有一个由多个前端使用的AWS Amplify后端-库存管理系统和新的订单。

库存管理系统具有身份验证设置(使用withAuthenticator React组件的Cognito用户池),需要用户登录才能访问该应用程序。 成功完成此操作后,它允许用户更改数据库(带有GraphQl的dynamoDB),从数据库中获取数据等。

订购表单不需要用户登录,但是我仍然需要将表单条目提交到数据库。使用Amplify Console托管表单并提交表单条目时,出现此错误:

Uncaught (in promise) No current user

是否有人处理过类似的事情?到目前为止,我还没有找到任何有用的答案。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在使用 amplify api add 创建 API 时,您必须启用用户身份验证作为 API 的选项之一。您需要向 React 应用程序添加身份验证,然后在发出 API 请求之前以注册用户的身份登录。最快的方法是使用预先构建的 React UI 框架。

使用 yarn 或 npm 安装 UI 框架:

yarn add aws-amplify @aws-amplify/ui-react

npm i aws-amplify @aws-amplify/ui-react

然后

import React from "react";
import Amplify from "aws-amplify";
import {AmplifyAuthenticator, AmplifySignOut} from "@aws-amplify/ui-react";
import awsconfig from "./aws-exports";

Amplify.configure(awsconfig);

const App = () => (
  <AmplifyAuthenticator>
    <div>
      My App
      <AmplifySignOut />
    </div>
  </AmplifyAuthenticator>
);

查看文档中的步骤和更多详细信息:https://docs.amplify.aws/ui/auth/authenticator/q/framework/react#installation