我有一個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