0

Je travaille avec l'AWS SDK JS Cognito Identity (https://github.com/aws/amazon-cognito-identity-js) et je suis en train de mettre en place quelques boutons pour tester la setDeviceStatusRemembered, setDeviceStatusNotRemembered et forgetDevice fonctionnalité mais je continue à obtenir une erreur en disant:AWS Cognito Identité JS: Oublier/Souvenir/Ne sont pas souvenus appareil

MissingRequiredParameter: Missing required key 'DeviceKey' in params

Voici une implémentation de l'une des fonctions:

forgetDevice = function(){ 

var cognitoUser = userPool.getCurrentUser(); 

if (cognitoUser != null) { 
    cognitoUser.getSession(function(err, session) { 
     if (err) { 
      alert(err); 
      signOut(); 
      return; 
     } 

     console.log('session validity: ' + session.isValid()); 

     cognitoUser.forgetDevice({ 
      onSuccess: function (result) { 
       console.log('call result: ' + result); 
      }, 
      onFailure: function(err) { 
       alert(err); 
      } 
     }); 
    }); 
    } 
} 

Si je change la fonction comme t son:

forgetDevice = function(cognitoUser){ 
    cognitoUser.forgetDevice({ 
     onSuccess: function (result) { 
      console.log('call result: ' + result); 
     }, 
     onFailure: function(err) { 
      alert(err); 
     } 
    }); 
} 

et j'appelle la fonction de la cognitoUser.authenticateUsersuccess fonction de rappel, en passant cognitoUser comme argument dans la fonction forgetDevice ci-dessus tout fonctionne parfaitement.

En regardant l'objet session dans la première mise en œuvre, il apparaît que l'objet session ne contient pas la propriété DeviceKey de sorte que le cognitoUser.forgetDevice() appel échoue.

Ce que je suis en train de comprendre est, dois-je être simplement appeler la setDeviceStatusRemembered, setDeviceStatusNotRemembered et forgetDevice fonctions à la connexion, ou devrais-je être en mesure de les appeler tout moment dans ma demande? J'espère que cela a du sens. Toute aide serait grandement appréciée. Merci!

Répondre

1

cette aide:

Notez que si le suivi de l'appareil est activé pour le pool d'utilisateur avec un paramètre utilisateur opt-in est nécessaire, vous devez mettre en œuvre un rappel onSuccess (résultat, userConfirmationNecessary), collecter les entrées utilisateur et appelez setDeviceStatusRemembered pour mémoriser le périphérique ou setDeviceStatusNotRemembered pour ne pas mémoriser le périphérique.

http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html

peut vous tenter également d'appeler getCachedDeviceKeyAndPassword pour remplir le deviceKey dans l'objet CognitoUser?

+0

Vous êtes génial! appelant getCachedDeviceKeyAndPassword a fonctionné! Merci beaucoup! –