假设我有一个AWS Lambda和一个相关的API网关端点API(例如/user/{userid}/activities
)。
可以从经过身份验证的用户和未经身份验证的用户调用此API,并且基于此,行为也不同。
经过身份验证的用户是拥有有效JWT的用户。未经身份验证的用户,没有JWT或他们的JWT已过期或无效。
此JWT由自定义授权人验证,该授权人根据令牌的签名公钥和其他参数(过期日期,发行者等)进行验证。
与/user/{userid}/activities
相关的lambda需要知道自定义授权者是否已经验证(或不验证)相关调用,因此可以选择应该使用的行为。
我该怎么做?
答案 0 :(得分:0)
方法取决于您区分匿名用户和经过身份验证的用户的方式。
鉴于您未在未指定授权标头时识别匿名用户,AWS APIGateway授权人将始终拒绝访问,因为标头丢失。
您可以考虑以下选项:
无论哪种方式,您都需要将端点签名更改为:/user/activities
并从上下文中推断userId,上下文可以通过授权者的适当userId帖子验证进行更新。