2016-07-02 6 views
0

Ich versuche, meinen Benutzern zu erlauben, einen vergessenen Kennwortfluss für ihren Cognito User Pool-Account in meiner Javascript-Website zu durchlaufen.Cognito-Dokumentation von AWS scheint unsinnig zu sein

Da User Pools in ihrer Betaversion sind, fehlt es an Dokumentation, und in diesem Fall bizarr. AWS macht den Anspruch, dass der folgende Code sollte:

startet und schließt einen vergessenen Kennwortablauf für einen nicht authentifizierten Benutzer.

mit dem Code Wesen:

cognitoUser.forgotPassword({ 
     onSuccess: function (result) { 
      console.log('call result: ' + result); 
     }, 
     onFailure: function(err) { 
      alert(err); 
     }, 
     inputVerificationCode() { 
      var verificationCode = prompt('Please input verification code ' ,''); 
      var newPassword = prompt('Enter new password ' ,''); 
      cognitoUser.confirmPassword(verificationCode, newPassword, this); 
     } 
    }); 

jemand Sinn dieses Codes machen oder zumindest bestätigen/verneinen, dass es scheinbar unsinnig? http://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html

+0

Vielleicht würde dies am besten direkt über die Benutzerforen auf AWS aufmerksam gemacht werden. – jbird

+0

Ich habe nur versucht, einige Male in ihren Entwicklerforen zu posten, und niemand hat jemals geantwortet, was mich davon abhält, sie zu benutzen, aber vielleicht sollte ich es noch einmal versuchen. –

+1

Was ist das spezifische Problem, das Sie sehen? Ist es syntaktisch gültig? Hast du es versucht? Es scheint so, als würde der Bestätigungscode von der Cognito-Infrastruktur gesendet werden, also muss er einen anderen Pfad durchlaufen - etwa die E-Mail- oder Telefonnummer des Benutzers per SMS? –

Antwort

0

Das Beispiel sollte funktionieren:

Es kann unter folgendem Link zu finden. Es funktioniert mit einem nicht authentifizierten, bestätigten Benutzer. Wenn Ihre Pool- und Benutzernamen-Daten eingerichtet sind, können Sie das Beispiel ausführen. Die Funktion "forgotPassword" ruft bei einem Fehlschlag oder Erfolg die relevanten Rückrufe auf oder fordert die neuen Kennwörter und Verifizierungscode-Informationen an.

var poolData = { 
    UserPoolId : 'YOUR_USER_POOL_ID', 
    ClientId : 'YOUR_APP_ID' 
}; 

var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
var userData = { 
    Username : 'YOUR_USER_NAME', 
    Pool : userPool 
}; 

var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 

cognitoUser.forgotPassword({ 
    onSuccess: function (result) { 
     console.log('call result: ' + result); 
    }, 
    onFailure: function(err) { 
     alert(err); 
    }, 
    inputVerificationCode() { 
     var verificationCode = prompt('Please input verification code ' ,''); 
     var newPassword = prompt('Enter new password ' ,''); 
     cognitoUser.confirmPassword(verificationCode, newPassword, this); 
    } 
}); 

Was ist der Teil, der nicht sinnvoll ist, damit wir die Dokumentation nach der öffentlichen Beta verbessern? Ist der Fluss falsch oder fehlen Informationen?

1

Die Sachen mit den Aufforderungen in den Beispielen sind in der Tat ein bisschen seltsam. Du würdest das wahrscheinlich anders machen wollen. Sie können ConfirmPassword tatsächlich rufen getrennt von den aktuellen cognitoUser von localstorage immer nach dem forgotPassword Prozess zu initiieren und dann rufen cognitoUser.confirmPassword

Sie können die aktuellen cognitoUser wie diese:

var data = { UserPoolId : 'us-east-1_Iqc12345', // Your UserPoolId 
     ClientId : '12345du353sm7khjj1q' // Your client ID 
    }; 
    var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(data); 
    var cognitoUser = userPool.getCurrentUser(); 

Und dann können Sie

nennen
cognitoUser.confirmPassword(verificationCode, newPassword, { 
    onSuccess: function(result){ 
     // Do stuff on success 
    }, 
    onFailure: function(err){ 
     // Do stuff on error 
    } 
}); 
Verwandte Themen