public async Task ExecuteAsync()

in Application/Utils/LoginProcessor.cs [31:84]


        public async Task ExecuteAsync()
        {
            try
            {
                var provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(), RegionEndpoint.GetBySystemName(this._userPoolOptions.Region));
                var userPool = new CognitoUserPool(this._userPoolOptions.UserPoolId, this._userPoolOptions.UserPoolClientId, provider, this._userPoolOptions.UserPoolClientSecret);

                var username = ConsoleUtilties.Prompt("Enter user name:", false);
                var password = ConsoleUtilties.Prompt("Enter password:", true);

                var user = userPool.GetUser(username);

                AuthFlowResponse authResponse = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest()
                {
                    Password = password
                });

                while (!string.IsNullOrEmpty(authResponse.ChallengeName))
                {
                    if (authResponse.ChallengeName == ChallengeNameType.NEW_PASSWORD_REQUIRED)
                    {
                        password = ConsoleUtilties.PromptForNewPassword();
                        authResponse = await user.RespondToNewPasswordRequiredAsync(new RespondToNewPasswordRequiredRequest
                        {
                            NewPassword = password,
                            SessionID = authResponse.SessionID
                        });
                    }
                }

                Console.WriteLine($"Login successful for {username}");

                Console.WriteLine($"User id token:{Environment.NewLine}{user.SessionTokens.IdToken}");

                var jwtHandler = new JwtSecurityTokenHandler();
                var jsonToken = jwtHandler.ReadJwtToken(user.SessionTokens.IdToken);

                Console.WriteLine("\nClaims in id token:");
                foreach(var claim in jsonToken.Claims)
                {
                    Console.WriteLine($"\t{claim.Type}: {claim.Value}");
                }

            }
            catch(Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderException e)
            {
                Console.Error.WriteLine($"Error logging into Cognito: {e.Message}");
            }
            catch(Exception e)
            {
                Console.WriteLine($"Unknown error logging into Cognito: {e.Message}");
                Console.WriteLine(e.StackTrace);
            }
        }