2017-07-31 14 views
0

CognitoのユーザープールとCognitoのフェデレーションIDを使用して、IAMの役割を認証済みのユーザーと認証されていないユーザーに渡します。ユーザーを認証されていないユーザーから認証済みのユーザーに切り替えると、開発者コンソールは変更が行われたことを登録しません。 100%未認証のユーザーがいることを示しています。Cognitoは、認証されていないユーザーを認証されたユーザーに切り替えることはありません

今、私はAWSクライアントを認証されていないユーザーとしてインスタンス化し、使用可能なときに資格情報を更新して認証に切り替えることができる関数を呼び出します。例:

AWS.config.region = 'us-west-2'; 
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: identityPoolId, 
    region: 'us-west-2', 
    Logins: {} 
}); 

const updateCredentials =() => { 
    const auth = store.getState().auth; //this gets the authentication credentials from a global store. 
    AWS.config.credentials.Logins = { 
    'cognito-idp.us-west-2.amazonaws.com/us-west-2_XXXXXXXXX': auth.idToken 
    }; 
    AWS.config.credentials.expired = true; 
}; 

私が知る限り、これは正しい方法です。ドキュメントat the bottom of this pageherehereを参照してください。

しかし、私のコンソールには認証されたユーザーがいないと表示されているので、updateCredentialsはユーザーを認証するように切り替えていません。これを解決するには何ができますか?

答えて

1

最終コールAWS.config.credentials.get(()....)

+0

これは質問に対する回答ではありません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](レビュー/低品質の投稿/ 16899974) –

+0

解決策ですが、問題はCognitoユーザーを作成していないということでしたが、 '.get'を使用すると...作成して表示されますコンソールで – UXDart

+0

UXDartは正しいですが、Logisterはいくつかの静的マップを作成しました。何らかの理由で、AWS Javascript SDKは、実際に資格情報を取得するためにgetまたはrefreshを呼び出す必要があります。そうしないと、ユーザーは認証されていないと表示されます。 –

関連する問題