问题标签 [aws-amplify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1462 浏览

header - 使用 AWS Amplify 登录时将 JWT 添加到所有 GraphQL/AppSynce 请求

我有一个使用 IAM 身份验证的 AppSync 应用程序(连接到 Cognito 用户和身份池)。使用 IAM 身份验证时,$event.context.identity 是一个 Cognito 身份池对象,没有用户信息(没有用户名、子、电子邮件等)

我相信每当我发出 graphQL 请求时,我都需要将 UserPoolID JWT(可通过 Amplify 在客户端使用)传递给 AppSync。但我一直无法弄清楚如何将 JWT 添加到(大概)标题中。
-------------EDIT------------- AppSyncClient 是客户端(基于 apollo 构建)。App.js 看起来像

0 投票
0 回答
410 浏览

react-native - React-Native aws-amplify PubSub 错误

对 PubSub.subscribe 的调用抛出:

TypeError:assign 的来源之一在原型链上有一个可枚举的键。您是否尝试分配原型属性?我们不允许这样做,因为这是我们不支持的极端情况。此错误是性能优化,不符合规范。

参考: https ://github.com/aws/aws-amplify/issues/750

有人对此错误有解决方法或解决方案吗?

谢谢

0 投票
1 回答
544 浏览

aws-lambda - AWS Lambda 函数在手动调用时可以正常工作,但不能通过端点调用

我有一个附加到 API Gateway 端点的 Lambda 函数,它列出了 DynamoDB 中 ID 下的项目。

我使用无服务器框架构建了我的函数。当我在本地调用函数 ( serverless invoke local ...) 时,它工作正常。当我在 AWS Lambda 控制台上手动测试它时,它可以正常工作,但是当我从 API Gateway 调用它时,它就不起作用了。

它被配置为使用此有效负载:(我用于测试的内容)

在我的应用程序中,我使用aws-amplify包。这就是我调用端点的方式:

在这里,我得到一个403错误。如果我在没有额外数据的情况下调用它,即:

我得到一个空列表[ ],但没有错误。是否aws-amplify自动填充该cognitoIdentityId字段?我正在关注无服务器堆栈教程,他们对此有点掩饰。

我也CloudWatch设置了,我在那里看不到任何时髦的东西。有关如何修复/调试此问题的任何想法?

干杯!

0 投票
2 回答
3057 浏览

reactjs - 读取文本文件 aws-amplify s3 从预签名 URL 读取数据

如何使用 aws-amplify 库读取 s3 中的文本文件?我能够获取预签名的 URL,但在访问该 URL 时出现错误,

文档有关于如何获取 url 的说明:

结果是路径的 url,而不是文本。当我运行 http get 方法时,端点不存在。

获取数据的最佳实践是什么?我正在使用反应。

如果有像 Storage.getText(...) 这样的方法,那将是最好的情况。

我试过使用这个添加授权......

400 错误请求 :(

0 投票
4 回答
4538 浏览

amazon-web-services - AWS Amplify 在 API 请求中使用访客凭证,而不是经过身份验证的凭证

我正在使用带有 MobileHub 的 AWS Amplify 库。

我连接了一个 Cognito 用户池和一个 API 网关(与 Lambda 函数通信)。我希望我的用户在访问资源之前进行签名,因此我在 MobileHub 用户登录页面和云逻辑页面中启用了“强制登录”。

身份验证工作正常,但是当我向我的 API 发送 GET 请求时,我收到此错误:

我了解 Amplify 会生成访客凭据,并将其放入我的 GET 请求中。由于我启用了“强制登录”,这不起作用。

但为什么要使用访客凭据?我已经登录——它不应该使用这些凭据吗?如何使用经过身份验证的用户信息?

干杯。

编辑:这是来自 Lambda 函数的代码:

拉姆达函数:

还有这些小辅助函数:

响应.js:

dynamodb.js:

0 投票
0 回答
316 浏览

reactjs - 对 aws-amplify 的反应使用会生成“未定义要求”错误

使用一个简单的 React 示例,然后将此行添加到顶部:

重新加载时产生以下错误:

未捕获的 ReferenceError:未定义要求

我正在使用 webpack 和一个简单的组件的简单 React 渲染。aws-amplify 的软件包是使用npm.

webpack.config.js 如下:

0 投票
0 回答
690 浏览

redux-saga - TypeError:user.sendMFACode 不是函数 - Redux Saga 和 AWS Amplify

使用:aws-amplify 0.3.3、aws-amplify-react-native 0.2.9.、redux-saga 0.15.6

在调用Auth.confirmSignIn使用 redux-saga 时:

let confirmedUserData = yield call([Auth, Auth.confirmSignIn], userObj, authCode, 'SMS');

收到以下错误: “TypeError:user.sendMFACode 不是函数”

来自的响应对象Auth.signIn如下:https ://d.pr/AX6IQI 。这个响应对象是Auth.confirmSignIn作为用户对象传递的。在查看响应对象时,没有sendMFACode功能。此外,看到以下内容:https://d.pr/i/gmzi0E在整个响应对象中多次存在:

“TypeError:'caller'、'callee' 和 'arguments' 属性可能无法在严格模式函数或调用它们的参数对象上访问”

我不确定上面的错误是否与“TypeError:user.sendMFACode 不是函数”错误有关,因为我不确定sendMFACode它应该在哪里。

Auth.confirmSignIn函数如下所示:https ://gist.github.com/grgaortiz/9a9dacefe1deca932396beea34ebebf2 。您可以看到它试图sendMFACode从响应“用户”对象调用该函数。

有一个已关闭的 github 问题,但解决方案是将 redux-saga 换成 redux-thunk,这并没有真正解决问题。

0 投票
1 回答
5264 浏览

reactjs - GraphQL 的 AWS Amplify 和 Apollo 客户端之间的区别?

我同意 Apollo 客户端设置起来很痛苦,因为有很多样板文件(尽管阅读文档后它变得很简单)以及 AWS Amplify、URQL、Apollo Boost 和 Micro GraphQL React 等东西使得在客户端上使用 GraphQL 变得很容易。

我目前正在使用 AWS AppSync,并且想在 AWS Amplify 和 Apollo Client 之间进行选择,并且我正在考虑使用所有 AWS。

那么 AWS Amplify 和 Apollo 客户端有什么区别?

0 投票
3 回答
5008 浏览

amazon-web-services - AWS Amplify AppSync IAM 401

I'm getting GraphQLError: Request failed with status code 401

I followed the automatic configuration instructions from:

https://aws.github.io/aws-amplify/media/api_guide#automated-configuration-with-cli

I tried looking, but there are a lack of resources for IAM. It looks like everything should be setup automatically, and done with the Amplify CLI after I put in the IAM access key and secret.

Is further setup required? Here is my code:

Could it also be because my GraphQL resolvers are not setup yet for ListKeywords?

0 投票
1 回答
2184 浏览

javascript - 如何检查用户是否在 AWS Amplify 中被确认?

我检查一下用户是否已经在数据库中,即if (e.name === 'UsernameExistsException') {...

我试过这个检查,看看它是否会返回trueor false,但没有运气:console.log(await Auth.verifiedContact(this.state.email));

如何检查该用户是否已确认?