web-dev-qa-db-ja.com

CognitoトークンをAmazonAPI Gatewayに渡す方法は?

Amazon APIGatewayをベースにしたWebアプリを開発しています。これで、Facebookログインを作成し、Webサイトに正常にログインしました。しかし、別のAPIを呼び出すと、すべてが失われました。毎回APIを呼び出すときにCognitoトークンを渡す必要があると思います。私は正しいですか?

はいの場合、CognitoトークンをAPIに渡す方法は?ヘッダーのように?または別の方法?

ありがとう、

12
itulga

Cognito IDから「BasicAuthflow」を使用しています。つまり、STSの「AssumeRoleWithWebIdentity」を呼び出してユーザーの資格情報を取得する必要があります。役立つドキュメントは次のとおりです。 http://docs.aws.Amazon.com/cognito/devguide/identity/concepts/authentication-flow/

資格情報を取得したら、APIGatewayクライアントをインスタンス化できます。

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

キーとトークンは、「AssumeRoleWithWebIdentity」呼び出しの結果から取得されます。

IAMロールと承認を正しく設定している場合は、APIにアクセスできるはずです。

ロールと承認を設定する方法を説明するドキュメントは次のとおりです。 http://docs.aws.Amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method -設定-呼び出し元-コンソール

また、CORSを有効にする方法は次のとおりです http://docs.aws.Amazon.com/apigateway/latest/developerguide/how-to-cors.html

16
Mark Mercurio