with origin iam from cross create cognito aws authorizer javascript amazon-web-services authentication http-headers aws-api-gateway

javascript - origin - aws call api gateway from lambda



AWS API Gateway UnrecognizedClientException con Javascript SDK generado (1)

He resuelto mi problema, así que aquí está la respuesta para cualquiera que se encuentre con un error lógico similar. NO use el token Id como su token de sesión, que es lo que estaba haciendo. El token de identificación se usa para generar el token de sesión, junto con la clave de acceso y la clave secreta. No confundas los dos.

Me encuentro con un código de estado 403 con una x-amzn-errortype UnrecognizedClientException en el encabezado x-amzn-errortype de la respuesta a mi solicitud API GET Request usando el JavaScript SDK generado. El recurso al que se llama utiliza IAM Auth, que diferencia la función de los usuarios en función de su grupo de usuarios.

Aquí está mi función de inicialización del cliente API

function initializeAPIClient(accessKey, secretKey, sessionToken){ var config = { region : region, accessKey : accessKey, secretKey : secretKey, sessionToken : sessionToken } apigClient = apigClientFactory.newClient(config); }

Aquí está mi función de solicitud GET

function testCall(){ var params = ''''; var body = ''''; var additionalParams = ''''; apigClient.testCallGet(params, body, additionalParams) .then(function(result){ alert("Permissions are available to this user."); }) .catch(function(result){ alert("Permissions are NOT available to this user."); }); }

Aquí están mis encabezados de solicitud:

:authority:[API_ENDPOINT] :method:GET :path:/[STAGE]/[RESOURCE] :scheme:https accept:application/json accept-encoding:gzip, deflate, sdch, br accept-language:en-US,en;q=0.8 authorization:AWS4-HMAC-SHA256 Credential=[ACCESS_KEY_ID]/20170406/[REGION]/execute-api/aws4_request, SignedHeaders=accept;host;x-amz-date, Signature=[SIGNATURE] origin:http://localhost:8000 referer:http://localhost:8000/php/[PAGE].php/?username=[USERNAME]&sessionToken=[SESSION_TOKEN] user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 x-amz-date:20170406T180808Z x-amz-security-token:[SESSION_TOKEN]

No estoy seguro de qué podría estar causando esto. Las soluciones recomendadas cuando busco UnRecognizedClientException parecen sugerir hacer lo que ya estoy haciendo.