Autentico tramite Cognito sul browser lato client utilizzando un'identità autenticata dallo sviluppatore. Quando la mia pagina viene caricata (o aggiornata) vorrei che la mia applicazione ricordasse l'identità per tutto il tempo in cui l'oggetto non è scaduto (credo che duri circa un'ora). Tuttavia, non so come recuperare l'identità da Cognito senza dover ricorrere nuovamente all'autenticazione dello sviluppatore.Come mantenere l'identità di Cognito tra le pagine nel browser
Ecco cosa fa il codice a pagina carico:
var cognitoCredentials
$(document).ready(function() {
"use strict";
cognitoParams = {
IdentityPoolId: 'us-east-1:xxxxxxx'
};
cognitoCredentials = new AWS.CognitoIdentityCredentials(cognitoParams);
AWS.config.credentials = cognitoCredentials;
});
E dopo l'accesso attraverso l'autenticazione sviluppatore:
cognitoCredentials.params.IdentityId = output.identityId;
cognitoCredentials.params.Logins = {
'cognito-identity.amazonaws.com': output.token
};
cognitoCredentials.expired = true;
Se ho già effettuato l'accesso, e quindi aggiornare la pagina, e provo ad accedere nuovamente Ricevo un errore che sto cercando di ottenere un'identità quando ne ho già uno Error: Missing credentials in config(…) NotAuthorizedException: Missing credentials in config
"Access to Identity 'us-east-1:91fa684a-3d30-4b38-8705-450f10f086af' is forbidden."
Tuttavia, non so come accedervi. Come posso recuperare le credenziali in modo che quando la pagina viene aggiornata, posso rilevare l'identità precedente fornita da Cognito?
C'è una best practice per la memorizzazione nella cache il token in modo che scade automaticamente? Dovrei usare sessionStorage invece di localStorage, ad esempio? – JBaczuk
Nella lettura sembra che la memorizzazione del browser o i cookie siano le opzioni e ciascuno di essi ha pro e contro: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/ – JBaczuk