【发布时间】:2018-05-14 13:30:46
【问题描述】:
这里是上下文:
- 我在 API 网关中设置了一个资源。 /用户/公司
- 此资源有 2 种方法。获取并发布。
- 我已为此资源配置了自定义授权方。
问题:
- 我可以通过发送正确的授权信息来调用GET方法,我得到了预期的结果。
- 我尝试发送 POST 请求,但收到以下错误:
{
"message": "User is not authorized to access this resource"
}
- 如果我等待几分钟,然后调用 POST 方法,它会起作用。
- 如果在调用 POST 方法并得到结果后我调用 GET 方法,它会显示与上述相同的错误。
另外,我已经为授权者禁用了缓存。
什么可能导致了这个问题?
【问题讨论】:
-
您能否打印自定义授权器 (jwtRsaCustomAuthorizer) 中的输入,并检查成功和失败的 GET/POST 请求之间的输入是否不同。另外能否请您确认您的自定义授权方是否是无状态的(即,实现将一些值存储为运行时变量,而授权逻辑取决于这些运行时变量)?
-
感谢您提供的信息,在我的自定义授权器中,我生成了一个用于 POST 或 GET 的策略。当我首先调用它们中的任何一个时,都会生成策略并且由于某种原因它被缓存。重置需要几分钟,我可以调用另一种方法。尽管将缓存设置为禁用,但还是发生了这种情况。我尝试在每次调用资源时为整个 API 网关生成一个策略,这很好地解决了这个问题。
-
策略似乎已为令牌缓存。在测试期间,我通常为每个请求创建一个新令牌。
-
关闭缓存后是否重新部署了 API?
-
救命问题????????
标签: aws-api-gateway custom-authentication