- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 lambda 函数作为我的 HTTP API 网关的身份验证器,我在简单响应中想出了三种情况-
我想在“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/
我是一名优秀的程序员,十分优秀!