ios - AWS 认知 : immediately signed-put after sign-in

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

上下文

我使用 booth Cognito 用户池和 Cognito 身份池来登录用户。

我想完成一个简单的任务,让用户在 iOS 应用程序(Swift 应用程序)上登录。

我的应用程序基于自定义版本的 Mobile Hub 帮助,以允许使用 Cognito 用户池。参见 A Swift Sample Sign-In App (using aws-mobile hub-helper) with Cognito User Pools

应用程序有两个步骤:第一个只是启动,第二个是在用户点击登录按钮后登录:然后为了最小化而对用户凭据进行硬编码。

在第一步中,用户必须收到未经授权的 identityId。然后在第二步之后,用户收到一个 auth identityId。

行为

在按登录之前,第 1 步,有 2 个请求到 AWS:

  1. AWSCognitoIdentityService.GetId
  2. AWSCognitoIdentityService.GetCredentialsForIdentity

媒体签名后还有 3 个请求:

  1. AWSCognitoIdentityProviderService.InitiateAuth
  2. AWSCognitoIdentityProviderService.RespondToAuthChallenge
  3. AWSCognitoIdentityService.GetId

在请求 5 — AWSCognitoIdentityService.GetId — 之前,用户已登录,如 AWSIdentityManagerDidSignInNotification 上的观察者所示。

在请求 5 之后,检索到一个 IdentityId。但是根据通知 AWSIdentityManagerDidSignOutNotification,用户注销后立即。

可能会发生什么?

最佳答案

查看您的日志会有所帮助。但是您需要意识到的是,cognito sdk 使用钥匙串(keychain)和 NSUserDefaults 记住东西( session ID、身份 ID 等)。因此,当您第二次运行硬编码测试时,测试的行为可能会有所不同。如果您想从头开始,请转到模拟器菜单并选择重置内容和设置(这将清除钥匙串(keychain) - 存储 session 内容,并将清除存储事件 session 的 NSUserDefaults)。

我刚刚在分支 AddAllMobileHubDemos 上推送了一个新版本的 repo。最新版本的存储库定义了 3 个目标。登录、MySampleApp 和 Dom。 SignIn 是我的旧登录应用程序的一个版本,经过修改可与 mobile-hub-helper 一起使用。 MySampleApp 是一个完整下载的 MobileHub 应用程序,内置 Cognito 用户池。还有 Dom,一个单页硬编码登录应用程序。

同时检查(在同一个存储库中)认知图 cognito-diagram.pdf from the latest push ,其中列出了一些可能的错误。该版本具有我上面描述的功能。

如果您发布可能有助于我更具体的日志。在某些情况下,AWSIdentityManager 会将您注销(例如,如果您尝试合并两个身份......如果您使用硬编码的用户名和密码,然后在不注销的情况下更改它们,则可能会很好。)

布鲁斯

关于ios - AWS 认知 : immediately signed-put after sign-in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40421546/

相关文章:

ios - 导航 Controller 内的 UIWebView 在键入时崩溃

ios - 上传带有字典的图片

ios - 一个 Controller 中的 UITableView && UICollectionView?

ios - swift 错误 : Could not find an overload for '==' that accepts the supplied arguments?

swift - 如何在 Swift 中使用数组和字典创建对象(如 js)

ios - 语义问题太多。 Xcode 8.2.1

ios - 排行榜分数未显示 UP

apache-flex - Flash Builder 4.5 的触摸事件

ios - 错误后重新订阅 Observable

ios - 合并多个音频文件以在iOS上实时播放