因此,我已成功通过 Cognito 中的用户池对用户进行身份验证。
据我了解,现在在我们使用任何 AWS 服务(dynamodb、S3 等)之前,我们需要再次从 AWS Cognito Credential Provider 获取 cognitoID
。
- Cognito 用户池(验证)用户登录
- 通过配置
AWSCognitoCredentialsProvider
获取CognitoID - 对我们想要与之交互的任何服务进行 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/