我正在尝试将Amazon Web Services集成到我的应用程序中,但是坦率地说,这是一个重大挑战,而且非常烦人。
我正在使用iOS的Amazon SDK(V2.1.0),这是我想要实现的目标:
我正在尝试让Amazon Cognito在ViewController中使用以下代码,但是对于变量 cognitoId ,我得到的是零。我的代码如下:
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1
identityPoolId:@"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
NSString *cognitoId = credentialsProvider.identityId; //NULL
基于以上所述,我有以下问题:
我感谢任何可以提供帮助的人。我迷失了试图在最后几天使它正常工作的想法。
谢谢!
最佳答案
默认情况下未设置Cognito身份ID。您是要调用getIdentityId还是要与提供者进行刷新?如果没有,我会尝试一下,看看是否有结果。
至于您的其他问题,Cognito支持“公共(public)提供者”,例如facebook,google和amazon,以及开发人员经过身份验证的身份。对于Facebook的建议案例,您可以在此处轻松使用Cognito。有关Cognito角色和策略的博客文章可在here上找到。
开发人员验证的身份可能是实现第二个用例的有效(且更安全)的方式。该工作流程将需要您拥有后端服务器,但您只能将对该服务器的dynamo db表的访问权限授予该服务器。用户将登录,应用程序会将数据发送到您的服务器,该服务器将验证并使用凭证进行回复,然后用户可以访问您的其他AWS资源。可以在here上找到描述此角色和策略的博客文章,并在here上提供一个详细说明细节并列出端到端示例的博客文章。
关于ios - 亚马逊Cognito iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29325328/