我目前有一个 API Gateway 设置来绑定使用 Java 编写的 Lambda 函数。我正在使用 javascript SDK 调用 API Gateway 端点,它们正确地中继到 Lambda 函数。但是,当我尝试通过以下方式访问 Cognito 身份 ID 时:
context.getIdentity()
我得到以下回复:
lambdainternal.api.LambdaCognitoIdentity@xxxxxx
如果我跑
context.getIdentity().getIdentityId()
它只是在记录器中返回一个空字符串。不确定我需要做什么来获取发出请求的用户的身份 ID 以传递到上下文。
我正在通过以下方式生成 Javascript AWS Api 客户端:
var apiClient = apigClientFactory.newClient({
accessKey: credentials.accessKeyId,
secretKey: credentials.secretAccessKey,
sessionToken: credentials.sessionToken,
region: 'us-east-1'
});
lambda 函数使用 IAM 策略进行保护,并且用户能够访问 lambda 函数,因此身份验证正常工作。由于某种原因,它只是不提供 IdentityId。