reactjs - 没有当前用户 AWS Amplify 身份验证错误 - 无需登录即可访问
问题描述
目标
使用 AWS amplify 启动基于 React 的订单。由于可能是身份验证问题,目前无法将条目提交到数据库。
我有一个被多个前端使用的 AWS Amplify 后端——一个库存管理系统和一个新的订单。
库存管理系统具有身份验证设置(Cognito 用户池,使用 withAuthenticator React 组件),需要用户登录才能访问应用程序。成功完成后,它允许用户更改数据库(dynamoDB,使用 GraphQl),从数据库中获取数据等。
订单表单不需要用户登录,但我仍然需要将表单条目提交到数据库。当使用 Amplify 控制台托管表单并提交表单条目时,我收到此错误:
Uncaught (in promise) No current user
有没有其他人处理过这个或类似的事情?到目前为止,我还没有找到任何有用的答案来解决这个问题。
谢谢您的帮助!
解决方案
当您使用amplify api add
. 您需要向您的 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
推荐阅读
- c# - 实体类型上已存在同名的属性或导航 - 如何在实体框架的迁移场景中添加外键
- r - 如何根据上一行的月份连续增加一个月?
- mongoose - Mongoose 动态查询结构“全部”或某些元素
- rust - 如何将负 i32 数添加到 usize 变量?
- asp.net-core - ASP.NET Core 启动类不遵循打开/关闭原则
- cassandra - Cassandra 行缓存只能缓存在特定列上吗?
- php - 无法将字符串(字母)插入 mysql 。数字工作正常
- reactjs - 将图像添加到 DevExtreme React Grid Bootstrap4 列
- scala - 对列表所有元素的算术运算
- debugging - 在哪里为 lldb 添加 -g -O0 调试标志