问题标签 [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.
visual-studio-code - 为什么 VSCode 在此订阅上给我一个类型错误?
我正在使用我的 VSCode关注本教程https://aws.github.io/aws-amplify/media/api_guide#subscriptions 。
我的 VSCode 一直告诉我该方法有错误subscribe
。
当我查看graphql
方法的定义时,它告诉我graphql({query, variables}: GraphQLOptions): Promise<GraphQLResult> | Observable<object>;
它可以返回一个 Promise 或一个 Observable。好吧,我正在尝试订阅这个 observable。我究竟做错了什么?为什么 VSCode 一直告诉我那里有错误?
错误是:'subscribe' property does not exist in type 'Promise<GraphQLResult> | Observable<object>'.
我必须在我的 中配置一些东西tsconfig.json
吗?
编辑:添加方法定义的屏幕graphql
。
amazon-s3 - 当文件不存在时,AWS Amplify 中的 Storage.get 返回什么?
我正在尝试使用 AWS Ampify,但找不到好的参考。指南,我可以找到,但不是参考。如果我调用 Storage.get,例如下面的代码片段,并且 test.txt 不存在,返回什么?
我发现它返回一个导致 404 的 URL。
amazon-web-services - 限制登录到 AWS 联合身份池的企业 Google 域
我正在使用带有 aws-amplify ( https://aws.github.io/aws-amplify/media/authentication_guide#enabling-federated-identities ) 的联合身份池,并且我想将域的范围限制为我的 google 域组织(例如 johndoe@foobar.com)。
似乎没有办法将其锁定在 Google API 控制台或 AWS Cognito 身份池设置中,只是提示可以将 hd 参数附加到 google 请求以按域限制它(仍然需要修改 aws-amplify 核心包),它仍然不安全,因为任何人都可以在没有 hd 的情况下发出相同的请求并获得对 cognito 的访问权限。
我的问题是:有没有办法将 google oauth 密钥限制为仅允许 @foobar.com 电子邮件地址,或者使用 aws cognito 实施相同的限制?
reactjs - 将用户添加到 Cognito 后刷新 Cognito 访问令牌
喂,我有以下情况。
第一次用户登录后,用户必须选择他们的类型,我通过调用将用户添加到适当的 Cognito 组的 lambda 来实现这一点。
调用成功后,我想通过调用以下代码来刷新我的 React 应用程序中的用户会话:
它在更新 idToken 的值时完成了这项工作 - idToken 有效负载具有更新的用户组和角色。
我遇到的问题是我在调用上面定义的 refreshSession 函数后执行的 API 调用。lambda 调用的行为就好像用户不属于它被添加到的 Cognito 组,我收到 403 响应。如果我注销并再次登录,我可以成功调用 API。
如此有效地我正在做类似(伪代码)的事情:
我认为这可能与我的代码没有刷新访问令牌有关,但我正在努力寻找一种方法来正确刷新整个用户会话。
我的 package.json 依赖项
任何指针将不胜感激:)
amazon-web-services - 使用来自用户池的 SAML 身份验证的令牌响应来检索 AWS 临时访问密钥
如何使用来自用户池的 SAML 身份验证的令牌响应来检索 AWS 临时访问密钥并进行 API 网关调用?
我已经配置了一个带有关联应用程序客户端的 Cognito 用户池。我已将 Okta 配置为第 3 方 SAML 身份提供程序。使用亚马逊托管的登录https://[cognito domain name]/login?response_type=token&client_id=[your App client id]&redirect_uri=[your App client redirect URL]
,我可以重定向到我的 ReactJS 应用程序,并#access_token
在标题中添加。
我现在正在尝试使用#access_token
调用 API 网关。我一直在关注本指南以及 aws-amplify。据我了解,我需要使用#access_token
获取 AWS 访问密钥来调用 API 网关。
我正在尝试使用以下代码执行此操作:
但不确定这如何与 aws-amplify 集成,而且我还没有成功检索 AWS 临时访问密钥来进行 API Gateway 调用。
我以前使用 Cognito 用户池中的用户进行这项工作,但现在我需要将 Okta 作为身份提供者。
angular - 使用放大角度访问任意 S3 对象
我已经配置了放大角度并用于身份验证和 API 访问。使用角 5。
我可以访问私有 S3 资源并利用在 API 访问期间使用的相同身份验证吗?
具体来说,我想向 S3 对象发出 REST GET 请求,例如:
https://s3.amazonaws.com/my-bucket-name/my-private-file.dat
AWS 签名需要作为授权标头包含在内才能正常工作。(假设用户有权限)
可能的选项:
- RestClient 类:它似乎做我想做的事,但我不认为它已导出或可供我的应用程序代码使用
- API:我可以在我的放大配置中定义另一个 API
https://s3.amazonaws.com
吗?我不确定将其视为 API 网关实例而不是......无论它是什么,都会产生什么副作用。
我不能将 API 端点放在 S3 访问之前;基于直接 S3 访问,ACL 会更容易检查,因为它们对每个对象都有单独的 ACL。
“存储”模块似乎不合适。这似乎只适用于预先确定的桶。我的访问模式可以访问到运行时才知道的任意数量的存储桶。
javascript - AWS IoT Core 连接被经过身份验证的 Cognito 用户拒绝,带有附加策略 [MQTT over WSS]
之前也有过类似的问题,我搜索了很多,虽然我找到的答案并没有帮助我解决问题。
我正在尝试为我的 IoT 设备连接到 AWS 的 MQTT 代理,我正在通过 AWS Amplify 的 PubSub 库使用 MQTT over Web Sockets。身份验证也通过 Amplify 处理(是的,用户已成功通过身份验证)。当我尝试连接时,它会立即关闭并显示错误消息:
errorCode: 8, errorMessage: AMQJS0008I 套接字关闭。
我已经为身份池设置了 IAM 角色,并将 IoT 策略附加到经过身份验证的用户(使用从 Amplify 检索到的身份 ID)。
用于附加策略的命令:
任何帮助表示赞赏,谢谢!
CloudWatch
物联网日志:
Cognito 身份池策略:
物联网政策:
测试代码:
编辑:
在附加策略之前,将以下策略添加到经过身份验证的认知身份角色中解决了我的问题。我使用的 arn 也有问题,因此我将同时使用 * 通配符。将再次更新,一旦我得到它的工作。
政策:
amazon-web-services - AWS Amplify - 禁用当前用户账户
AWS Amplify 身份验证模块具有一些用于登录、注册、忘记密码等操作的方法。甚至可以让用户通过以下方式更新他/她的信息:
但是,无论如何我都看不到禁用(当心,不要删除)帐户。
那么,用户可以注册 Web 应用程序,但不能使用 AWS Amplify 将其停用?如果没有,还有其他方法可以通过 Javascript 代码禁用 AWS Cognito 用户池用户吗?
javascript - aws 放大自定义标题:预期属性分配
当我添加此代码以做出反应时,错误似乎是无法识别等待。确切的错误是“等待”字中预期的属性分配
我正在从这里阅读 aws-amplify 关于自定义标头https://aws.github.io/aws-amplify/media/api_guide#custom-request-headers的文档。
这是 index.js 中的代码(配置了放大)
amazon-web-services - 如何在不配置的情况下使用 Amplify?
我将 AWS Amplify 与 Appsync 一起使用,如下所示:
效果很好,但现在我在超时和批处理之间包装逻辑,我在 Lambda 函数中使用它。
在 AWS 开发工具包中,您无需全局配置即可发出请求,如下所示:
是否可以使用 Amplify 来做到这一点,而无需调用全局对象Amplify
?
我试过const graphQlApi = new API(cfg)
了,但我得到的只是TypeError: aws_amplify_1.API is not a constructor