2015-09-18 20 views
11

Sto sviluppando un'applicazione web basata su Amazon API Gateway. Ora ho creato l'accesso a Facebook e ho effettuato l'accesso con successo al sito web. ma quando chiamo un'altra API, tutto è andato. Penso che dovrei passare il token Cognito quando chiami ogni volta l'API. ho ragione?Come passare il token Cognito ad Amazon API Gateway?

in caso affermativo, come passare il token Cognito all'API? come intestazione? o in un altro modo?

Grazie,

+0

Che cosa si intende per tutto ciò è andato? Di quali informazioni hai bisogno sul chiamante all'interno dell'API dell'API API? –

+0

Sareste in grado di fornire codice di esempio e messaggi di errore che si stanno ottenendo? –

+0

@ScottWilleke chiama la mia pagina di login/doLogin API, quindi ottengo token e ID da Cognito. Dopo di che vado alla pagina ristretta come profilo, chiama/showProfile API. Al momento/showProfile non sa che sono connesso o meno. Quindi mi dà l'errore "Token di autenticazione mancante". Penso che dovrei inviare il mio token e l'ID a tutte le chiamate dell'API Gateway, ma come inviarle? intestazione come "Amazon-Cognito-Token"? o in un altro modo? – user2882027

risposta

15

Stai utilizzando la "Basic Authflow" dall'identità cognito, il che significa che sarà necessario per ottenere le credenziali per gli utenti chiamando "AssumeRoleWithWebIdentity" di STS. Ecco po 'di documentazione per aiutare: http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

Una volta si dispone di credenziali, è possibile creare un'istanza del gateway API client:

var client = apigClientFactory.newClient({ 
    accessKey: ACCESS_KEY, 
    secretKey: SECRET_KEY, 
    sessionToken: SESSION_TOKEN }); 

I tasti e gettoni vengono dal risultato della chiamata "AssumeRoleWithWebIdentity".

Se i ruoli IAM e le autorizzazioni sono stati configurati correttamente, è possibile accedere alla propria API.

Ecco la documentazione che descrive come configurare i ruoli & autorizzazione: http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method-settings-callers-console

Inoltre, ecco come abilitare CORS - http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

+0

dovrei usare apigClientFactory in JS della mia interfaccia web? – user2882027

+0

Cosa stavi usando in precedenza? –

+0

come utilizzare API gateway protetto utilizzando la richiesta AJAX, quali sono le intestazioni necessarie? come generare e impostarli? ecco il post di un blog su come chiamare il gateway protetto usando ajax, su quel poster che sta usando l'intestazione di x-api-key. È come un token JWT, come posso generare APIKEY o come impostare chiavi e token da AssumeRoleWithWebIdentity a una richiesta jax? http://dev.classmethod.jp/cloud/aws/call_amazon-api-gateway_from_browser/ – user2882027

Problemi correlati