amazon-web-services - 如何为API请求添加Cognito授权?这样 Lambda 就可以访问它

标签 amazon-web-services aws-lambda aws-api-gateway amazon-cognito

我想将 Cognito 授权添加到我的 API 请求中,以便 API 网关可以将信息传递到我的 Lambda。我在其他线程中读到我应该添加 id token 作为授权 header ,所以这就是我到目前为止所尝试的。

我尝试过以下方法:

fetch('api/public/libraries/sign-out-discourse', {
    method: 'POST',
    headers: new Headers([
        // I get the idToken from CognitoUser.getSession => getIdToken()
        ['Authorization', idToken],
    ]),
})

我收到错误消息

{"message":"'Object]' not a valid key=value pair (missing equal-sign) in Authorization header: '[object Object]'."}

我尝试过以下方法:

fetch('api/public/libraries/sign-out-discourse', {
    method: 'POST',
    headers: new Headers([
        // I get the idToken from CognitoUser.getSession => getIdToken().getJwtToken()
        ['Authorization', jwtToken],
    ]),
})

我收到错误消息:

{"message":"Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=eyJraWQiOiJOemhFe..."}

将授权信息传递给 API 的正确方法是什么?

最佳答案

我认为您使用 New Headers() 方法的解决方案可能有点过于复杂。

试试这个:

fetch('api/public/libraries/sign-out-discourse', {
    method: "POST",
    headers: {
        'Authorization': jwtToken
    }
});

关于amazon-web-services - 如何为API请求添加Cognito授权?这样 Lambda 就可以访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52665550/

相关文章:

python - DynamoDB 更新计数器(或插入键)

aws-lambda - Cloudformation 上的 AWS JAVA LAMBDA

java - Amazon Lambda Java 函数将 png 返回到 API 网关

python - 有没有办法使用 AWS Lambda 以流式传输方式将 Cloudwatch 日志导出到 Amazon S3? (Python)

amazon-web-services - 在 AWS Step Functions 中迭代先前状态的结果

python - 如何使用 boto3 更新 API 网关中的 Lambda 函数版本?

amazon-web-services - 如何将多部分形式的数据传递给 AWS Lambda

android - 推送通知 - AWS Pinpoint 和 AWS SNS 之间的区别

java - 使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID