aws-api-gateway - iOS AWS API Gateway:此身份池不支持未经身份验证的访问
问题描述
//setup service config
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:CognitoIdentityUserPoolRegion credentialsProvider:nil];
//create a pool
AWSCognitoIdentityUserPoolConfiguration *configuration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:CognitoIdentityUserPoolAppClientId clientSecret:nil poolId:CognitoIdentityUserPoolId];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:configuration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
pool.delegate = self;
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoIdentityUserPoolRegion
identityPoolId:CognitoIdentityPoolId];
AWSServiceConfiguration *configuration1 = [[AWSServiceConfiguration alloc] initWithRegion:CognitoIdentityUserPoolRegion
credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration1;
以上是我在 appdelegate 中的代码。我正在使用 AWS 文档“CognitoYourUserPool”中的示例登录。并尝试使用 Generated SDK for iOS 调用 API。
API_Client *apiInstance = [API_Client defaultClient];
[apiInstance setAPIKey:@"xxxxxxxxxxxxxxxxxxxxxx"];
[[apiInstance presetTypeGet] continueWithBlock:^id _Nullable(AWSTask * _Nonnull t) {
NSLog(@"error: %@",t.error);
NSLog(@"result: %@",t.result);
return nil;
}];
登录后我确实调用了 API。但这是错误的。我现在不知道为什么。请帮我。如果您需要更多信息,请询问。非常感谢你。
解决方案
试试这个:
AWSCognitoIdentityUserPoolConfiguration *configuration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:CognitoIdentityUserPoolAppClientId clientSecret:nil poolId:CognitoIdentityUserPoolId];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoIdentityUserPoolRegion identityPoolId:CognitoIdentityPoolId];
AWSServiceConfiguration *configuration1 = [[AWSServiceConfiguration alloc] initWithRegion:CognitoIdentityUserPoolRegion credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration1;
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration: configuration1 userPoolConfiguration:configuration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
pool.delegate = self;
推荐阅读
- github - 在哪里可以找到 Markdown 语言文档?
- hibernate - JpaSort.unsafe 抛出异常
- arduino - 将变量连接到寄存器
- security - 如何在浏览器中的“安全连接”锁定旁边添加测试
- unit-testing - 使用带有服务器回调的 http 进行 Flutter 飞镖测试
- css - 图像大小和鼠标悬停
- python - 如何在按数据透视表 Pandas 分组的列中添加条件
- sql - 如何在联合集运算符的每个 oracle SQL 查询中使用不同的 order by 子句
- bash - 在 \[ 和 \] 之间转义非打印字符的 ANSI 序列
- python - 如何在pygame中按比例将任意整数列表(从最低到最高)放在屏幕上?