node.js - 在 Node.js 中使用 async/await 的 Lambda 授权方响应

标签 node.js amazon-web-services aws-lambda

我正在尝试使用 node.js async/await 而不是回调在 aws 上创建一个 lambda 授权器,但没有关于如何创建返回到 API 网关的 HTTP 响应的信息。例如,如果我返回这个:

{
  statusCode: 401
}

API 网关似乎不理解并向客户端返回错误 403:
{
    "statusCode": 403,
    "error": "Forbidden",
    "message": "No principalId set on the Response"
}

有谁知道如何做这里描述的事情:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
但是使用异步/等待?

提前致谢 !

编辑:

返回错误 401 的方法是简单地抛出这样的错误:throw new Error("Unauthorized")如果用户明确拒绝/允许,只需返回 JSON 策略。

最佳答案

要返回 401 错误,您只需将“未授权”作为消息抛出错误,如下所示:

throw new Error("Unauthorized")

如果用户明确拒绝/允许,只需像使用回调一样返回 JSON 策略。

关于node.js - 在 Node.js 中使用 async/await 的 Lambda 授权方响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55106223/

相关文章:

node.js - Express + TypeScript : Create type inference for response. 本地人

javascript - 使用 npm install 安装 glup 时出错

java - 配置为 s3 通知处理程序时如何在 aws lambda 函数中给出错误响应

amazon-web-services - AWS::Lambda::Function,JS 文件作为源

javascript - Webpack HMR 不重新加载 HTML 文件

javascript - 从嵌套函数返回

java - SQS Java 客户端异常 - com.amazonaws.SdkClientException : Unable to execute HTTP request: Permission denied: connect

typescript - 如何使用 AWS CDK 检测控制台/堆栈偏差

amazon-web-services - 如何在多个 AWS Lambda 函数之间共享数据?

amazon-web-services - ffmpeg 文件转换 AWS Lambda