【发布时间】:2021-02-26 10:50:27
【问题描述】:
我有两个 lambda 函数(A 和 B),它们使用相同的 LambdaTokenAuthorizer,并配置了以下标识
Identity:
Header: Authorization
ValidationExpression: Bearer.*
ReauthorizeEvery: 30 # cache for 30 s
第一个和后续请求(对 A) 已被授权并正确解析,但在授权方响应之后和同时对 B 的任何请求都会被缓存 (从先前对 A 的请求),将失败并显示 403 和以下消息:
{ message: "User is not authorized to access this resource" }
这是预期的行为吗?我在文档中找不到任何关于它的信息。
默认授权者(顺便说一下,默认缓存 300 秒)甚至是一个选项还是反模式?
有没有办法解决这个问题(除了设置ReauthorizeEvery: 0)?
假设如果授权者是共享的,那么它不应该缓存响应是否正确?
编辑:我知道这之前已经“回答”过了,但是文档没有说明缓存是如何工作的。如果请求的资源不同,我希望授权者不会使用缓存。
【问题讨论】:
-
我得到的最佳解释来自这些答案:stackoverflow.com/a/51568013/6273042
标签: aws-lambda aws-api-gateway aws-sam lambda-authorizer