2015-09-18 13 views
11

私はAmazon API Gatewayに基づいてWebアプリケーションを開発しています。今私はFacebookログインを作成し、ウェブサイトにログインしました。しかし、別のAPIを呼び出すと、すべてが消えてしまいました。毎回APIを呼び出すときには、Cognitoトークンを渡す必要があると思います。私は正しい?CognitoトークンをAmazon API Gatewayに渡す方法は?

「はい」の場合、CognitoトークンをAPIに渡すにはどうすればよいですか?ヘッダーのような?または別の方法ですか?

おかげで、

+0

あなたがなくなっているすべてのものとはどういう意味ですか? API Gateway APIの呼び出し元について、どのような情報が必要ですか? –

+0

入手しているサンプルコードとエラーメッセージを提供できますか? –

+0

@ScottWillekeログインページが/ doLogin APIを呼び出すと、CognitoからトークンとIDを取得します。その後、プロファイルのような制限されたページに行き、/ showProfile APIを呼び出します。今すぐ/ showProfileは私がログインしているかどうかわかりません。だから、私に "Missing Authentication Token"というエラーが表示されます。私は私のトークンとIDをすべてのAPI Gateway呼び出しに送信する必要があると思いますが、それらを送信する方法はありますか? 「Amazon-Cognito-Token」のようなヘッダ?または別の方法ですか? – user2882027

答えて

15

あなたはSTSの「AssumeRoleWithWebIdentity」を呼び出すことにより、ユーザーの資格情報を取得する必要があります意味cognitoアイデンティティから「基本Authflow」を使用しています。ここではいくつかのドキュメントを支援することです:

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

キーおよびトークンは「AssumeRoleWithWebIdentity」コールの結果から来る:http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

資格情報を持っていたら、API Gatewayクライアントをインスタンス化することができます。

あなたはあなたのAPIにアクセスすることができるはず正しくIAMロールと権限を設定している場合。

ここでの役割に&の許可を設定する方法を説明する文書れる:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method-settings-callers-console

はまた、ここでCORSを有効にする方法である - http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

+0

私は私のウェブインターフェースのJSにapigClientFactoryを使用する必要がありますか? – user2882027

+0

以前に何を使いましたか? –

+0

どのようにAJAX要求を使用して保護されたゲートウェイAPIを消費するか、必要なヘッダーは何ですか?それらを生成して設定する方法は?ここでは、ポストポスターがx-api-keyヘッダーを使用している場合、ajaxを使用して保護されたゲートウェイを呼び出す方法に関する1つのブログ投稿があります。これはJWTトークンのようなものですが、APIKEYを生成する方法、またはAssumeRoleWithWebIdentityからajaxリクエストにキーとトークンを設定する方法はありますか? http://dev.classmethod.jp/cloud/aws/call_amazon-api-gateway_from_browser/ – user2882027

関連する問題