【发布时间】:2020-06-26 09:13:15
【问题描述】:
我正在使用带有 Amplify (aws-amplify@3.0.11) 和 Aws Amplify Angular (aws-amplify-angular@5.0.11) 库的 Angular 应用程序。
Amplify 设置为通过 AWS API Gateway 与 Cognito 通信,所有授权都通过它。到目前为止一切正常,但现在我有一个特定请求,我需要将 multipart/form-data POST 请求发送到网关上的端点之一,其中包含特定文件。
由于 Amplify 不支持发送“multipart/ form-data”,我需要向 API Gateway 创建一个 HTTP 客户端请求(不带 Amplify),这意味着我需要对其进行签名(v4 签名)。
问题来了。我需要使用来自 Amplify 签名用户的凭据来生成签名,到目前为止这对我不起作用。有谁知道我需要将哪些令牌作为“accessKey”和“secretKey”传递?我无法直接从 Amplify 获取“secretKey”,但尝试使用“Auth.currentUserCredentials()”,它确实返回“accessKeyId”和“secretAccessKey”。
我正在尝试使用 https://github.com/mar753/aws-signature-v4(针对 Typescript 和 Angular 进行了修改)通过发送所需参数来签署请求。
无论我尝试什么组合,我总是收到相同的错误消息 (403):
"message: "请求中包含的安全令牌无效。"
【问题讨论】:
标签: angular amazon-web-services aws-amplify