私は開発者認証のIDを使用してクライアント側のブラウザでCognitoを通じて認証しています。私のページが読み込まれる(またはリフレッシュされる)とき、オブジェクトが期限切れでない限り(私はそれが約1時間続くと思います)、アイデンティティを覚えておきたいです。しかし、私はCognitoからIDを取得する方法を知らず、開発者の認証をやり直す必要はありません。 、私はすでにログインして、ページを更新している場合はブラウザ内のページにCognito IDを保持する方法
cognitoCredentials.params.IdentityId = output.identityId;
cognitoCredentials.params.Logins = {
'cognito-identity.amazonaws.com': output.token
};
cognitoCredentials.expired = true;
:
var cognitoCredentials
$(document).ready(function() {
"use strict";
cognitoParams = {
IdentityPoolId: 'us-east-1:xxxxxxx'
};
cognitoCredentials = new AWS.CognitoIdentityCredentials(cognitoParams);
AWS.config.credentials = cognitoCredentials;
});
と開発者の認証経由でログインした後:ここで
コードは、ページの読み込みに何をするかですもう一度ログインしようとすると、私がすでにIDを持っているときにIDを取得しようとしているというエラーが表示されます Error: Missing credentials in config(…) NotAuthorizedException: Missing credentials in config
"Access to Identity 'us-east-1:91fa684a-3d30-4b38-8705-450f10f086af' is forbidden."
しかし、私はそれにアクセスする方法を知らない。ページが更新されると、Cognitoが提供する以前のIDを検出できるように、資格情報を取得するにはどうすればよいですか?
それは自動的に期限切れになるように、トークンをキャッシュするためのベストプラクティスはありますか?たとえば、localStorageではなくsessionStorageを使用する必要がありますか? – JBaczuk
読書では、ブラウザの記憶装置やクッキーのように見えますが、それぞれに賛否両論があります:https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/ – JBaczuk