我有一个AWS网关API,它被配置为由AWS_IAM授权,我使用Cognito身份池对用户进行身份验证,并且此API被配置为触发lambda函数。lambda函数中的AWS身份信息
现在,当调用lambda函数时,我能够通过event参数传递给lambda表达式的requrestContext对象中的identityId和identityPoolId。我的问题是如何从lambda函数中获取用户的信息(来自cognito用户池或任何其他身份提供者,如Facebook,Google等)?为了将用户的信息包含在事件参数中,我需要做什么配置?或者我应该使用某种AWS SDK功能?
这是我在事件参数收到的RequestContext:
{
requestContext:{
accountId:'1234567890',
resourceId:'abcdef',
stage:'test',
requestId:'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
identity:{
cognitoIdentityPoolId:'us-west-2:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
accountId:'1234567890',
cognitoIdentityId:'us-west-2:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
caller:'ABCDEFGHIJKLMNOPQRSTUV:CognitoIdentityCredentials',
apiKey:null,
sourceIp:'0.0.0.0',
accessKey:'ABCDEFGHIJKLMNOPQRSTUV',
cognitoAuthenticationType:'authenticated',
cognitoAuthenticationProvider:'cognito-idp.us-west-2.amazonaws.com/us-west-2_xxxxxxxxx,cognito-idp.us-west-2.amazonaws.com/us-west-2_xxxxxxxxx:CognitoSignIn:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
userArn:'arn:aws:sts::1234567890:assumed-role/xxx-role/CognitoIdentityCredentials',
userAgent:'axios/0.16.1',
user:'ABCDEFGHIJKLMNOPQRSTUV:CognitoIdentityCredentials'
},
resourcePath:'/users',
httpMethod:'GET',
apiId:'xxxxxxxx'
}
}
但我没有发送带有请求的令牌,如果是例如Facebook身份呢? – Sami