¿Cómo restaurar un token caducado [AWS Cognito]?
Estoy usando AWS para mi sitio web. Después de 1 hora, el token expira y el usuario prácticamente no puede hacer nada.
Por ahora estoy tratando de actualizar las credenciales de esta manera:
function getTokens(session) {
return {
accessToken: session.getAccessToken().getJwtToken(),
idToken: session.getIdToken().getJwtToken(),
refreshToken: session.getRefreshToken().getToken()
};
};
function getCognitoIdentityCredentials(tokens) {
const loginInfo = {};
loginInfo[`cognito-idp.eu-central-1.amazonaws.com/eu-central-1_XXX`] = tokens.idToken;
const params = {
IdentityPoolId: AWSConfiguration.IdPoolId
Logins: loginInfo
};
return new AWS.CognitoIdentityCredentials(params);
};
if(AWS.config.credentials.needsRefresh()) {
clearInterval(messwerte_updaten);
cognitoUser.refreshSession(cognitoUser.signInUserSession.refreshToken, (err, session) => {
if (err) {
console.log(err);
}
else {
var tokens = getTokens(session);
AWS.config.credentials = getCognitoIdentityCredentials(tokens);
AWS.config.credentials.get(function (err) {
if (err) {
console.log(err);
}
else {
callLambda();
}
});
}
});
}
El problema es que después de 1 hora, el token de inicio de sesión se actualiza sin problemas, pero después de 2 horas ya no puedo actualizar el token de inicio de sesión.
También intenté usarAWS.config.credentials.get()
, AWS.config.credentials.getCredentials()
yAWS.config.credentials.refresh()
que tampoco funciona
Los mensajes de error que recibo son:
Faltan credenciales en la configuración
Token de inicio de sesión no válido. Token caducado: 1446742058> = 1446727732