amazon网络服务-移动集线器示例ios应用程序的AWS开发者身份验证



在阅读了大量文档和大量的尝试和错误之后,我能够在我的aws移动集线器应用程序中创建一个lambda(api网关)驱动的后端,用于开发者身份验证。

  • 我已经将AWSCognitoCredentialsProviderHelper子类化,以创建我的开发人员身份提供者
  • 已实现:getIdentityId、令牌和自定义类中的登录名

实例化:

devIdentityProvider = DeveloperIdentityProvider(
            regionType: AWSRegionType.USEast1,
            identityPoolId: getIdentityPoolFromPlist()!,
            useEnhancedFlow: true,
            providerName: "login.myapp",
            identityProviderManager: AWSIdentityManager.defaultIdentityManager())
    let credentialsProvider = AWSCognitoCredentialsProvider(
            regionType: AWSRegionType.USEast1,
            unauthRoleArn: nil,
            authRoleArn: nil,
            identityProvider: devIdentityProvider!)
    let configuration = AWSServiceConfiguration(
            region: AWSRegionType.USEast1,
            credentialsProvider: credentialsProvider)
    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

然后我执行credentialsProvider.credentials()来获取从后端返回的令牌/identityId的已验证凭据。所有这些似乎都能工作,我得到了AccessKey、SessionKey等。所以它似乎工作得很好。

不过,在continue块中,如果我试图调用AWSDynamoDB或syncdata,我会得到:

Unauthenticated access is not supported for this identity pool.

为了确保移动集线器应用程序中的AWS服务接收更新的凭据,我可能缺少什么?此外,我如何让AWSIdentityManager参与其中?因为AWSIdentityManager.defaultIdentityManger似乎从未从我的自定义身份提供程序中获得用户名等。任何帮助都将不胜感激。

您是否尝试过为您的身份池检查允许未经身份验证的身份的选项?

附言:不建议使用未经身份验证的身份存储用户敏感数据。

我还煞费苦心地将Mobile Hub Helper与多种登录变体集成在一起,其中包括Cognito用户池。

简而言之,MobileHubHelper身份管理器目前仅限于Facebook和谷歌登录机制。

除此之外,它还将破坏任何使用另一个身份提供程序配置项目的尝试。

你需要避免使用这个,或者从GitHub下载源代码并进行修改。

相关内容

  • 没有找到相关文章

最新更新