【发布时间】:2016-07-18 03:01:24
【问题描述】:
在阅读了大量文档并进行了大量试验和错误之后,我实际上能够在我的 aws 移动集线器应用程序中创建一个用于开发人员身份验证的 lambda(api 网关)驱动的后端。
- 我已将 AWSCognitoCredentialsProviderHelper 子类化以创建我的开发人员身份提供程序
- 已实现:自定义类中的getIdentityId、token和登录
实例化:
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() 来获取从后端返回的令牌/身份 ID 的经过身份验证的凭据。所有这一切似乎都有效,我得到了 AccessKey、SessionKey 等。所以它似乎工作正常。
不过,在 continue 块中,如果我尝试调用 AWSDynamoDB 或 syncdata,我会得到:
Unauthenticated access is not supported for this identity pool.
为了确保移动中心应用程序中的 AWS 服务接收更新的凭证,我可能缺少什么?另外,我如何让 AWSIdentityManager 参与其中?因为似乎 AWSIdentityManager.defaultIdentityManger 从来没有从我的自定义身份提供者那里获得用户名等。任何帮助将不胜感激。
【问题讨论】:
标签: amazon-web-services authentication amazon-cognito aws-sdk-ios aws-mobilehub