• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何将 cognito 用户池与身份池集成?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:33:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 CognitoUserPoolsSample iOS Obj-C 应用程序进行练习,并尝试添加与 Cognito Identity 的集成。我已经设置了一个用户池和一个身份池,其中用户池设置为身份池的身份验证提供程序。用户池工作正常,但用户没有出现在身份池中。 这是我在 applicationDidFinishLaunchingWithOptions 中的内容:

//setup service config
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];

//Configure user pool
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId"CLIENT_ID"  clientSecret"CLIENT_SECRET" poolId"OOL_ID"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey"UserPool"];

//configure identity pool
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
                                                      initWithRegionType:AWSRegionUSEast1
                                                      identityPoolId"IDENTITY_POOL_ID"
                                                      identityProviderManager:pool];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

到目前为止这是正确的吗?下一步是什么?为什么我注册一个新用户时它没有出现在身份池中?身份池控制台显示创建的身份为零。



Best Answer-推荐答案


你好这里要理解的关键是当你打电话时:

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
                                                      initWithRegionType:AWSRegionUSEast1
                                                      identityPoolId"IDENTITY_POOL_ID"
                                                      identityProviderManager:pool];

AWS 框架将为您设置好一切,并且 cognito 用户池和与联合身份的集成将无缝运行。

我最初忽略的一个关键点在这里:http://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html

[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
    if (task.error) {
        NSLog(@"Error: %@", task.error);
    }
else {
       // the task result will contain the identity id
       NSString *cognitoId = task.result;
   }
return nil;
}];

这会强制从服务器刷新您的凭据。包含在用户和 session 中的对象可用于确认登录和关联的认知 id 以及 session token 。

注意不要在上面的代码中同时使用 MobileHubHelper。因为移动 HUB Helper 会破坏这一切。

关于ios - 如何将 cognito 用户池与身份池集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688345/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap