如何将登录映射添加到CredentialsProvider



我已经使用相关文档中的9个步骤将我的用户池设置与联合身份流集成在一起。我正在遵循文档并使用增强的身份验证流。

然而,还有一个我无法完全理解的额外步骤,可能导致了我在IOS SDK方面遇到的问题。该指南提到:

对用户进行身份验证后,将该用户的身份令牌添加到凭据提供程序中的登录映射。提供程序名称将取决于在您的Amazon Cognito Identity用户池ID上。它将具有以下结构:cognito idp。。amazonaws.com/

然后它提供了以下IOS SDK片段:

AWSCognitoIdentityUserPool *pool = [[AWSCognitoIdentityUserPoolalloc] initWithClientId:@"YOUR_CLIENT_ID"clientSecret:@"YOUR_CLIENT_SECRET"poolId:@"YOUR_USER_POOL_ID"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvideralloc] initWithRegionType:AWSRegionUSEast1identityPoolId:@"IDENTITY_POOL_ID"identityProviderManager:pool];

但据我所知,在这段代码中,凭据提供程序中没有添加任何登录映射。如果您查看JavaScript和Java版本,就会发现这是显式设置的。经过一番挖掘,我还找到了IOS-SDK的一个方法,即setLogins方法,但该方法已被弃用。根据文件,我可以按照以下方式启动它:

[self.credentialsProvider setLogins:@{@"cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>": @"id_token"}];

但是,这会导致折旧警告

setLogins is deprecated. Use 'AWSIdentityProviderManager' to provide a valid logins dictionary to the credentials provider

AWSIdentityProviderManager协议似乎确实提供了一种登录方法,但这并没有记录在案。

所以我的问题是:如何在我的凭据提供商中添加我的登录映射?

您不会将logins字典添加到凭据提供程序中。AWSIdentityProviderManager定义了以下方法:

- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins;

它异步地将logins字典提供给凭证提供者,并且AWSCognitoIdentityUserPool符合AWSIdentityProviderManager。因此,代码片段就是您所需要的全部。如果您遇到问题,则该问题与logins词典无关。

相关内容

  • 没有找到相关文章

最新更新