代码之家  ›  专栏  ›  技术社区  ›  Darren

无法访问API网关中的Cognito Identity以用作路径参数

  •  0
  • Darren  · 技术社区  · 2 年前

    我有一个 PUT 中的终结点 API Gateway 将上传的文件直接放入 S3 水桶

    这个 Method Request 需要我的授权 Cognito 授权池,运行良好。

    我想用用户Cognito用户ID作为文件名来保存上传的文件。

    我尝试创建 URL Path Parameter 使用 context.identity.cognitoIdentityId 但它总是一片空白。我还尝试访问 context.identity.user 其也是空白的。如果为创建路径参数 context.requestId 这个很好用,我可以在 Path override

    我也试过设置 HTTP Header X-Cognito-Id=context.identity.cognitoIdentityId 然后访问 method.request.header.X-Cognito-Id Path Parameters 部分,但它仍然是空白的。

    这是我当前尝试多项设置的屏幕截图。这会导致文件名具有 rid wishid 但没有别的。

    enter image description here

    我的其他使用Lambda函数的端点可以很好地访问Cognito用户。

    0 回复  |  直到 2 年前
        1
  •  1
  •   Chris Smith    2 年前

    我相信你想要的是: context.authorizer.claims[cognito:username] 或者可能 context.authorizer.claims.email 取决于您如何设置Cognito。

    要查看所有可用特性的列表,可以将其临时添加到映射模板中: $context.authorizer.claims.keySet()

    推荐文章