AWS - 按用户池登录Cognito,以及Cognito身份验证[iOS]

时间:2017-06-29 10:45:37

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

所以我已经在Cognito中使用用户池成功验证了用户身份。 根据我的理解,在我们利用任何AWS服务(dynamodb,S3等)之前,我们需要再次从AWS Cognito Credential Provider获取cognitoID

  1. Cognito用户池(验证)用户登录
  2. 通过配置AWSCognitoCredentialsProvider
  3. 获取CognitoID
  4. 将AWS cals设置为我们想要与之交互的服务。
  5. 从User PoolID委托成功登录后,我这样做

    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软件包与文档的软件包不匹配,并且不存储在钥匙串(id标记)中,因此我的登录UI每次都会打开。 我们可以通过两种方式通过Cocoapods / Carthage或AWS Console中的Mobile HUB获取AWS SDK。现在我很困惑,我使用哪一个? 我还使用了移动HUB的示例项目,但如果我的后端(AWS控制台)已经设置并且我只需要实现前端怎么办?

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

    如果有人能够清楚我到底做错了什么,那就太好了,因为我已经浪费了大量的时间而且徒劳无功。

1 个答案:

答案 0 :(得分:0)

不推荐使用MobileHubHelper框架,AWS iOS SDK使用Auth SDK来管理AWS身份验证。建议你使用它。您可以在此处找到相关说明:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/add-aws-mobile-user-sign-in.html

谢谢, 罗汉