AWS Cognito Missing在params中需要键“DeviceKey”

时间:2017-09-04 16:27:07

标签: javascript amazon-web-services amazon-cognito aws-cognito

使用非常有用的Amazon Web服务Cognito进行用户管理。

我会在登录时记住我的用户设备,但是当我打电话给

  

cognitoUser.setDeviceStatusRemembered()

我有以下错误消息:

  

在参数

中缺少必需的键'DeviceKey'

这就是我实现它的方式:

  AuthService.login($scope.username.toLowerCase(), $scope.password)
           .then(function(res) {
              if ($scope.rememberMe == true)
                AuthService.setRememberedDevice($scope.username);
            })

我的登录功能已经很长时间了。

我已阅读过这个问题: AWS Cognito Identity JS: Forget/Remember/Do Not Remember Device

...调用getCachedDeviceKeyAndPassword()可以解决这个问题,但我无法弄清楚在哪里找到这个方法的实现或如何使用它。

我认为@Ionut Trestian可以知道正确答案

2 个答案:

答案 0 :(得分:0)

你在运行哪个环境?如果在浏览器中运行它,则令牌和设备密钥存储在本地存储中,如果在服务器端环境中运行它们,它们将存储在内存中。

答案 1 :(得分:0)

我不确定您使用的是哪个SDK /库。使用当前的Amplify库,您可以通过用户对象获取设备密钥:

Auth.currentAuthenticatedUser({
}).then(user => {
  user.getCachedDeviceKeyAndPassword(); // without this line, the deviceKey is null
  console.log(user.deviceKey);
});