ios - AWS - 通过用户池进行 Cognito 登录和 Cognito 身份验证 [iOS]

标签 ios swift amazon-web-services amazon-cognito

因此,我已成功通过 Cognito 中的用户池对用户进行身份验证。 据我了解,现在在我们使用任何 AWS 服务(dynamodb、S3 等)之前,我们需要再次从 AWS Cognito Credential Provider 获取 cognitoID

  1. Cognito 用户池(验证)用户登录
  2. 通过配置AWSCognitoCredentialsProvider获取CognitoID
  3. 对我们想要与之交互的任何服务进行 AWS 调用。

从 User PoolID 委托(delegate)成功登录后,我执行此操作

credentialProvider = AWSCognitoCredentialsProvider(regionType: 
AWS_Region_type, identityPoolId: AWS_IdentityPool_ID, 
identityProviderManager: devCredentialProvider)
let configuration = AWSServiceConfiguration(region: AWS_Region_type, credentialsProvider: credentialProvider)
 AWSServiceManager.default().defaultServiceConfiguration = configuration 

但每次我都知道用户未通过身份验证。现在,如果用户未通过身份验证,那么我就无法使用 Cognito 用户池登录。我究竟做错了什么?

请不要提供现有 aws 文档的资源,它们具有很强的误导性。

此外,来自 Cocoapods 的 AWS 包与文档中的包不匹配,并且不存储在钥匙串(keychain)(id token )中,因此我的登录 UI 每次都会打开。 我们可以通过两种方式获取 AWS SDK,通过 Cocoapods/Carthage 或从 AWS 控制台中的 Mobile HUB。现在我很困惑我该用哪一个?? 我也使用了 Mobile HUB 的示例项目,但是如果我的后端(AWS 控制台)已经设置好并且我只需要实现前端怎么办?

此外,我的后端设置在 USEast2 上,但是在创建 Mobile HUB 项目时,NO USEast2。

如果有人能弄清楚我到底做错了什么,那就太好了,因为我已经在这上面浪费了很多时间而白费功夫。

最佳答案

MobileHubHelper 框架已弃用,AWS iOS SDK 具有用于管理 AWS 身份验证的 Auth SDK。建议您使用它。您可以在此处找到说明:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/add-aws-mobile-user-sign-in.html

谢谢, 罗汉

关于ios - AWS - 通过用户池进行 Cognito 登录和 Cognito 身份验证 [iOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44823012/

相关文章:

ios - 在 Swift 中创建暂停

ios - 使用 FBWebDialogs (Facebook SDK 3.5) 成功发布后的 nil resultURL

ios - AdMob 未在 iOS 版本上转换广告。错误代码 8,找不到名称为 : ("com.google.DummyAdapter") 的广告网络适配器

swift - 如何在快速编程中创建全局属性(变量)?并从其他类(class)传递值

ios - 如何调整 iOS 选择器轮以生成随机索引

ios - 是否有任何 iOS 粒子系统库

ios - 如何为每个 TableViewCell 添加具有不同重复次数的 Multiple TableViewCell

typescript - 使用 pulumi Typescript 获取 Elasticache 端点

amazon-web-services - AWS Elasticache CPU 使用率超过 100%

swift - 为 swift iOS 应用程序安装 cocoa pod 后找不到名为 AWSLex 的模块