Необходимо включить использование интеграции Lambda Proxy в запросе интеграции метода API.
Ваш объект APIGatewayProxyRequest будет выглядеть примерно так:
{
"Resource": "/test",
"Path": "/test",
"HttpMethod": "GET",
"Headers": {
"Accept": "*/*",
"accept-encoding": "gzip, deflate",
"Authorization": "your token",
"cache-control": "no-cache",
"CloudFront-Forwarded-Proto": "https",
"CloudFront-Is-Desktop-Viewer": "true",
"CloudFront-Is-Mobile-Viewer": "false",
"CloudFront-Is-SmartTV-Viewer": "false",
"CloudFront-Is-Tablet-Viewer": "false",
"CloudFront-Viewer-Country": "US",
"Host": "xxxxxxx.execute-api.us-east-1.amazonaws.com",
"Postman-Token": "08820d50-c5d4-498a-bfee-c76994bb91f1",
"User-Agent": "PostmanRuntime/7.4.0",
"Via": "1.1 dd169cfdbbafbb3da513bede6bc6640e.cloudfront.net (CloudFront)",
"X-Amz-Cf-Id": "89ftx9aaVK0k2KOFu-5QESLXzGUGAw17gNCCY03in-hF2hd-LvRhIg==",
"X-Amzn-Trace-Id": "Root=1-5c125bb9-1e8b9fea8d1beb20147a24d2",
"X-Forwarded-For": "50.196.109.21, 70.132.33.133",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
},
"QueryStringParameters": null,
"PathParameters": null,
"StageVariables": null,
"RequestContext": {
"Path": "/test_oauth/token",
"AccountId": "xxxxxxxxxxxxx",
"ResourceId": "luy67k",
"Stage": "test_oauth",
"RequestId": "5455133d-fed9-11e8-8f41-ef35907ced2d",
"Identity": {
"CognitoIdentityPoolId": null,
"AccountId": null,
"CognitoIdentityId": null,
"Caller": null,
"ApiKey": null,
"SourceIp": "50.196.109.21",
"CognitoAuthenticationType": null,
"CognitoAuthenticationProvider": null,
"UserArn": null,
"UserAgent": "PostmanRuntime/7.4.0",
"User": null
},
"ResourcePath": "/token",
"HttpMethod": "GET",
"ApiId": "8xxg9ez961",
"Authorizer": {
"claims": {
"sub": "4560ac4b-54a0-4184-8831-e3cb2583726b",
"aud": "xxxxxxxxxxxxxxxx",
"email_verified": "false",
"event_id": "467633ad-fed9-11e8-88ff-25be6cd15697",
"token_use": "id",
"custom:ApplicationId": "12345",
"auth_time": "1544706978",
"iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-xxxxxxxxx",
"cognito:username": "username",
"exp": "Thu Dec 13 14:16:18 UTC 2018",
"iat": "Thu Dec 13 13:16:18 UTC 2018",
"email": "user@email.com"
}
}
},
"Body": null,
"IsBase64Encoded": false
}
Обратите внимание, что вы получите разные значения, если ваш API-шлюз настроен на использование токена идентификатора по сравнению с токеном доступа (что отличается от использования пользовательских областей OAuth или их отсутствия в настройках API-шлюза). Вы также обнаружите, что результаты зависят от настроек вашего клиентского приложения User Pool - какие области Allowed Oauth включены, а также какие атрибуты включены для ваших клиентов App.