2017-01-12 7 views
0

私はここで少し混乱しています。PHPバックエンドでAndroidアプリケーションを開発しています。ほとんどのタスクでは他のAWSライブラリを使用しますが、バックエンドのために保管したトランザクションなどは使用します。私は、PHPのAPIの呼び出しと応答を処理するために改造を使用します。私はここでかなり混乱しています。PHPを使用してWeb APIにリクエストするユーザーのIDを特定できる方法はありますか? APIゲートウェイを使用すると、ログインしているユーザーのみのアクセスを制限できますが、受信者APIが自分の身元を判断することは私にはかなり混乱します。PHPバックエンドAPIでのCognito IDの確認

更新: 私はAPIゲートウェイをいつでも使用したくありません。それはほとんどの時間の要求がタイムアウトするバギーです。サーバーは現在の状況に対してより良いパフォーマンスを提供します。

何か手がかりや助けをいただければ幸いです。

+0

私の会社のブラウザとモバイルアプリケーションには、Cognitoを使用しています。あなたはすでにユーザーデータベースを持っていますか?またはあなたのユーザーデータも保存するためにcognitoを使用しますか? – John

+0

私はdynamodbにユーザーデータベースを持っています。 –

答えて

1

既にユーザーデータベースがあるため、Cognitoで「開発者」IDを使用する必要があります。

Cognitoの「連携ID」セクションに「IDプール」を作成する必要があります。そこから

あなたは基本的にはあなたとあなたのユーザーIDを関連付ける文字列...だ..「カスタム」の認証プロバイダーを登録

次に、あなたがサインインするCogintoIdentity-> getOpenIdTokenForDeveloperIdentity()メソッドを使用します。アマゾンであなたのユーザー。

あなたはまたCognitoSync

とアイデンティティに関連するデータセットを作成するには、この新しいアイデンティティを使用することができます... IdentityID、あなたがAWS APIに一時的な資格情報を取得するためにSTSに送信することができますOpenIDのセッショントークンが返されます
$cognitoIdentityClient->getOpenIdTokenForDeveloperIdentity([ 
    'IdentityPoolId'=>'Your Pool ID', 
    'Logins'=>[ 
      'your.custom.provider.string'=>'YOUR USER ID' 
     ] 
]); 

EDIT: 私のモバイルアプリケーションでは... IdentityIdを取得した後、私はIdentityId上で送信するためにカスタムHTTPヘッダーを使用し、また、ユーザーIDとサーバー側でユーザーを検証するために、「lookupDeveloperIdentity」メソッドを使用します。

+0

私はすでにアンドロイド側でこれをやっています。私はアイデンティティプロバイダを登録し、ユーザIDを作成しました。今私は、有効なアイデンティティIDのPHPへの投稿要求をしているユーザーを識別したいと思います。 CognitoからIDを取得するには、POSTリクエストに何を渡す必要がありますか? openIDトークンだと思って試してみましょう。 :) –

+0

私が行うことは、カスタムHTTPヘッダーにIDとIDを追加することです。次に、 "lookupDeveloperIdentity"メソッドを使用して、リクエストを送信したユーザーを確認します – John

関連する問題