我正在使用“Cognito用户池授权人”(没有“AWS_IAM”选项,没有自定义编码的授权人)通过API网关将HTTPS作为HTTPS调用Lambda方法。为什么在Lambda中未收到Cognito自定义属性
在Lambda上,我通过adminUpdateUserAttributes
在某些情况下设置了自定义用户属性custom:partnerId
。
我可以验证它是否已通过Cognito用户池AWS控制台正确设置。
在iOS客户端,我也可以成功地得到所有用户属性(包括自定义的)作为How to get Cognito user pool "sub" attribute on iOS
的问题,我的答案描述是这样的:
我没有收到这个自定义在LAMBDA属性为 event.requestContext.authorizer.claims['custom:partnerId']
下一个API请求
直到我强制用户登录,再次明确(含用户名/密码)的iOS客户端。
在完成这个明确的登录后,我会收到包含在authorizer.claims
参数中的自定义属性。
我不知道这是否是API网关问题(因为我认为它是通过HTTP“Authorization”头获取Cognito用户),iOS Cognito SDK的问题或Lambda本身的问题。
API网关只是从Cognito获取上下文变量。由于自定义属性是当用户再次登录时出现的,我认为这与Cognito有关。 Cognito有人应该能够回答。 – Balaji