【问题标题】:Integrating User Pools and Identity Pools Objective-C集成用户池和身份池 Objective-C
【发布时间】:2016-10-20 13:48:29
【问题描述】:

我正在努力将用户池和身份与 AWS Cognito 集成。我不确定我是否应该在用户注册或登录时对用户进行身份验证。现在这就是我的登录方法的样子。

AWSCognitoIdentityUser *user = [self.pool getUser:self.emailField.text];
    [[user getSession:self.emailField.text password:self.passwordField.text validationData:nil scopes:nil] continueWithBlock:^id _Nullable(AWSTask<AWSCognitoIdentityUserSession *> * _Nonnull task){
        dispatch_async(dispatch_get_main_queue(), ^{
            AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
            AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:IdentityPool identityProviderManager:self.pool];
            [credentialsProvider getIdentityId];
            [credentialsProvider credentials];
            if(task.error)
            {
                [SVProgressHUD dismiss];
                UIAlertController *alert = [alertViewController passwordsDontMatch];
                [self presentViewController:alert animated:YES completion:nil];
            }
            else
            {

                [SVProgressHUD dismiss];
                [self performSegueWithIdentifier:@"Enter" sender:self];
            }


        });

这是我的 AppDelegate。

    AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = serviceConfiguration;

AWSCognitoIdentityUserPoolConfiguration *configuration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:ClientID clientSecret:ClientSecretId poolId:UserPoolId];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:configuration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];


self.credentialProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:IdentityPoolId];
AWSServiceConfiguration *config = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:self.credentialProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = config;

【问题讨论】:

    标签: ios objective-c amazon-web-services authentication amazon-cognito


    【解决方案1】:

    您对用户进行身份验证的时间将取决于应用的需求(用户体验和安全性)。对于某些可能需要电子邮件验证的应用程序,不适合仅在注册时对用户进行身份验证。如果在注册时对用户进行身份验证没有安全漏洞,那么您也可以这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-25
      • 2017-02-10
      • 2017-02-28
      • 2016-09-26
      • 2018-08-31
      • 2016-10-17
      • 2018-02-18
      • 2021-06-08
      相关资源
      最近更新 更多