vendredi 1 juillet 2016

Integrating User Pools and Identity Pools Objective-C

I am struggling to integrate user pools and identity with AWS Cognito. I am not sure if i should be authenticating the users when they register or when they sign-in. Right now this is what my sign-in method looks like.

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];
            }


        });

This is my 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;

Aucun commentaire:

Enregistrer un commentaire