gpt4 book ai didi

amazon-web-services - 如何从 AWS HTTP API 网关获取 401 状态码

转载 作者:行者123 更新时间:2023-12-05 06:07:40 26 4
gpt4 key购买 nike

我正在使用 lambda 函数作为我的 HTTP API 网关的身份验证器,我在简单响应中想出了三种情况-

  1. 当“isAuthenticated”= True --> 200 并且请求通过
  2. 当 "isAuthenticated"= False --> 403 并返回 Forbidden
  3. 当 header 中缺少身份验证 key 时 --> 401

我想在“isAuthenticated”= False 时返回 401,或者想办法从 API 网关/授权方发送 401 错误代码,在 REST API 网关中,这可以通过使用“未授权”引发错误/异常来实现.但这对于 REST API 网关是不可能的。

我几乎尝试了所有方法来从简单和策略 HTTP API 网关发送响应,例如引发异常/错误/回调甚至返回 null。

当用户未通过身份验证时,我有办法返回 401 吗? StackOverflow 上有很多类似的问题,但主要针对 REST API-Gateway,我的问题是特定于 HTTP API-Gateway

最佳答案

我来晚了(在这里偶然发现了其他东西)但简而言之,答案是不,你不能

HTTP API 专门设计得更简单,配置更少,因此返回所需响应代码的自由度更低。

对于遇到此问题的任何人,此处提供了有关 lambda 授权程序如何简单地用于 HTTP API(而非 REST API)的更多信息。

使用 HTTP API,使 lambda 授权方具有简单的响应格式(不是 IAM)。并从您的函数返回以下 json:

return {
"isAuthorized": false/true,
"context": {
"somethingLikeUserIdOptional": 123,
}
}

返回 isAuthorized = false,将导致 HTTP 网关自动返回一个 403 (Forbidden) 给调用者。省略您的授权者所需的身份源(参数/ header )将返回 401 Unauthorized 而不执行您的 lambda。显然 isAuthorized = true 返回 200 Success,它会使用您放入上下文中的内容为 API 路由执行下一个 lambda。

查看此处了解更多信息:Lambda Authorizers AWS Docs

有关返回的状态代码和演练的详细信息,请参见此处:AWS Walkthrough from AWS Blog

关于amazon-web-services - 如何从 AWS HTTP API 网关获取 401 状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65356494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com