使用 AWS Cognito Identity 的要点
Point of using the AWS Cognito Identity
使用以下代码的目的是让我可以直接使用我的 ios 应用程序访问其他 AWS 工具吗?
AWSCognitoCredentialsProvider *credentialsProvider = [[DeveloperAuthenticationProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"poolId"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
__block NSString *cognitoId = nil;
// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task)
{
if (task.error)
{
NSLog(@"Error: %@", task.error);
}
else
{
// the task result will contain the identity id
cognitoId = task.result;
}
return nil;
}];
然后我将 AWS Lambda 与 API 网关一起使用来获取用户身份。
需要 Cognito 才能在访问 AWS 资源时提供执行上下文(身份验证)。这意味着,在 AWS 上没有什么是真正匿名的——即使您没有用户 "log in",他们仍然有一个与其设备关联的唯一标识符。
这意味着您的应用程序之外的某个随机人员无法简单地访问您的 AWS 资源(S3、Lambda 等)并执行代码。
这也意味着您可以而且必须为您的 Lambda 分配执行权限,以允许您的 Cognito 组执行。
另一件需要注意的事情:您不需要使用 API 网关来在 iOS 上执行 Lambdas。您可以本地调用。我更喜欢这样做 - 更少的配置。
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/lambda.html
希望这能回答您的问题。
使用以下代码的目的是让我可以直接使用我的 ios 应用程序访问其他 AWS 工具吗?
AWSCognitoCredentialsProvider *credentialsProvider = [[DeveloperAuthenticationProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"poolId"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
__block NSString *cognitoId = nil;
// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task)
{
if (task.error)
{
NSLog(@"Error: %@", task.error);
}
else
{
// the task result will contain the identity id
cognitoId = task.result;
}
return nil;
}];
然后我将 AWS Lambda 与 API 网关一起使用来获取用户身份。
需要 Cognito 才能在访问 AWS 资源时提供执行上下文(身份验证)。这意味着,在 AWS 上没有什么是真正匿名的——即使您没有用户 "log in",他们仍然有一个与其设备关联的唯一标识符。
这意味着您的应用程序之外的某个随机人员无法简单地访问您的 AWS 资源(S3、Lambda 等)并执行代码。
这也意味着您可以而且必须为您的 Lambda 分配执行权限,以允许您的 Cognito 组执行。
另一件需要注意的事情:您不需要使用 API 网关来在 iOS 上执行 Lambdas。您可以本地调用。我更喜欢这样做 - 更少的配置。
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/lambda.html
希望这能回答您的问题。