gpt4 book ai didi

ios - 使用 Cognito 通过 Facebook 登录后无法获取身份 ID

转载 作者:行者123 更新时间:2023-11-28 06:48:06 25 4
gpt4 key购买 nike

我想将 AWS Cognito 集成到我的移动应用程序中,主要使用 Facebook 和 Google 登录,一旦用户登录,他就可以从 S3 上传/下载文件并与 DynamoDB 交互。我还希望特定用户的 cognitoID 成为 DynamoDB 中的主键以识别每个用户。首先,保留 cognitoID(IdentityID) 以便用户在全局范围内识别每个用户是否是个好主意?

其次,当我尝试使用 getIdentityID 从 sharedInstance 获取身份 ID 时,或多或少遵循以下几行

// Retrieve your Amazon Cognito ID
credentialsProvider.getIdentityId().continueWithBlock { (task: AWSTask!) -> AnyObject! in
if (task.error != nil) {
print("Error: " + task.error.localizedDescription)
}
else {
// the task result will contain the identity id
let cognitoId = task.result
}
return nil
}

我没有得到所需的 IdentityID,而是得到了一个 nil,因此无法坚持。我错过了什么吗?如果您需要更多信息,请告诉我。

最佳答案

如果您不打算合并登录,那应该是绝对安全的。通过身份验证后,身份唯一可以更改的时间是合并登录时。如果是这样,仍然可以使用您构建的 Hook 进行管理,该 Hook 将数据从旧身份 ID 移动到新身份 ID。

我觉得这很好(这正是示例起始代码)。每the Cognito docs , getIdentityId 是一个异步调用。如果您的提供商已经设置了身份 ID,您可以调用 credentialsProvider.identityId 来检索本地缓存的身份。但是,如果您的提供商未设置身份 ID,则调用 credentialsProvider.identityId 将返回 nil。我猜你的问题是这个。

如果您确定这不是问题所在,我会确认您的客户端也已按照我们文档中的示例进行了初始化:

let credentialsProvider = AWSCognitoCredentialsProvider(regionType: AWSRegionType.USEast1, identityPoolId: "IDENTITY_POOL_ID")let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1, credentialsProvider: credentialsProvider)AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

关于ios - 使用 Cognito 通过 Facebook 登录后无法获取身份 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com