首页 > 解决方案 > 如何从 API Gateway 中的自定义授权方返回 401 Unauthorized 而不会导致 Lambda 错误?

问题描述

我在 Lambda 中有一个使用 Node JS 的 AWS Cognito 自定义授权方,效果很好。它基本上是使用本教程中提供的代码。

我的自定义授权器失败的方式有很多:用户使用了错误的池,用户提交了无效的授权令牌等。每当发生这种情况时,我都会调用:

      context.fail("Unauthorized");

这也很有效。

不幸的是,当用户的令牌过期时(这种情况一直都在发生,尤其是早上有人打开浏览器时的第一件事),我也会调用相同的方法,这是我所知道的返回 401 消息的唯一方法。这有效,用户返回登录页面。

问题是,在我的 Cloudwatch 仪表板中,我们正在监视损坏的代码/可疑活动,每次有人打开浏览器时,我们都会看到 Lambda 错误。这非常嘈杂,很难发现有人在做可疑的事情。

在此处输入图像描述

所以我的问题是:我怎样才能让授权方失败,返回 401(或其他),不执行 REST API,也不在 CloudWatch 中显示错误?

标签: node.jsamazon-web-servicesauthorizationaws-api-gatewayamazon-cognito

解决方案


推荐阅读