在阅读了大量文档和大量试验和错误后,我能够在我的移动集线器应用程序中实际创建一个lambda(api网关)驱动的后端,用于开发人员身份验证。
实例化:
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永远不会从我的自定义身份提供程序获取userName等。任何帮助都将非常感激。
答案 0 :(得分:0)
您是否尝试检查允许身份池使用未经身份验证的身份的选项?
P.S。:建议不要使用针对未经身份验证的身份存储用户敏感数据。
答案 1 :(得分:0)
我也很努力将Mobile Hub Helper与多种登录方式集成在一起。其中包括Cognito用户池。
简短的回答是,MobileHubHelper身份管理器目前仅限于Facebook和Google登录机制。
除此之外,它还会破坏使用其他身份提供程序配置项目的任何尝试。
您需要避免使用它,或从Git Hub下载源代码并进行修改。