0
我的应用使用AWS Cognito存储用户首选项。正在擦除cognitoSync数据
用户通过身份验证并存储他们的首选项。 当用户注销时,他们的Cognito数据集出现在AWS服务器上
但是,当他们重新登录到所有数据集时,应用程序第一次同步时会擦除这些字段。
当dataset.synchronize()
返回时,AWS服务器上的数据已被删除。我做了什么错误的步骤?
var cognitoDS:AWSCognitoDataset?
…
func getCognitoDataset() -> AWSCognitoDataset? {
if cognitoDS == nil {
if let cognitoSync = AWSCognito.defaultCognito() {
if let cognitoDS = cognitoSync.openOrCreateDataset(Constants.CognitoUserDataset) {
self.cognitoDS = cognitoDS
} else {
print("openOrCreateDataset() returned nil")
}
} else {
print("cognitoSync not found")
}
}
return cognitoDS
}
func synchronizeCognitoDS() -> AWSTask {
if let dataset = getCognitoDataset() {
return dataset.synchronize().continueWithBlock { task in
if let error = task.error {
NSLog("Error in sync: %@", error.localizedDescription)
return task
}
if task.completed {
NSLog("Sync successful")
}
return task
}
}
return AWSTask(error:NSError(domain:"Juno", code:3030, userInfo:nil))
}
我所有的用户都通过了身份验证。没有未经验证的选项。我用auth0作为我的Cognito“包装器”,并调用A0Lock.clearSessions()来注销。在此“登出”步骤后,数据仍存在于我的AWS服务器上。当用户下次登录时,它将被删除。 – Carl
而且您100%确定注销和登录时身份标识相同?你能证实吗? –
100%肯定。我在AWS上有一个应用程序实例,只有一个Cognito Identity Id,因此可以很容易地发现此区域中的任何异常情况。 – Carl