【发布时间】:2017-12-01 05:00:44
【问题描述】:
我正在使用 AWS Cognito Identity JS SDK (https://github.com/aws/amazon-cognito-identity-js),我正在尝试设置一些按钮来测试 setDeviceStatusRemembered、setDeviceStatusNotRemembered 和 forgetDevice 功能,但我不断收到错误提示:
MissingRequiredParameter: Missing required key 'DeviceKey' in params
这是其中一个功能的实现:
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);
}
});
});
}
}
如果我像这样更改函数:
forgetDevice = function(cognitoUser){
cognitoUser.forgetDevice({
onSuccess: function (result) {
console.log('call result: ' + result);
},
onFailure: function(err) {
alert(err);
}
});
}
我从 cognitoUser.authenticateUser success 回调函数中调用该函数,将 cognitoUser 作为参数传递给上面的 forgetDevice 函数,一切正常。
从第一个实现中的session 对象来看,session 对象似乎不包含DeviceKey 属性,因此cognitoUser.forgetDevice() 调用失败。
我想弄清楚的是,我应该只在登录时调用setDeviceStatusRemembered、setDeviceStatusNotRemembered 和forgetDevice 函数,还是应该能够在我的应用程序中随时调用它们?希望这是有道理的。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: javascript amazon-web-services amazon-cognito aws-cognito