Exemple #1
0
        public async Task <bool> SendChangeEmailCallback(string newEmail)
        {
            var currentUser = await GetCurrentUser();

            var changeEmailToken = await userManager.GenerateChangeEmailTokenAsync(currentUser, newEmail);

            changeEmailToken = cryptoService.Encrypt(changeEmailToken);

            string callbackUrl =
                $"{Configuration.GetValue<string>(AppSettingsKeys.ClientAddress)}account/changeEmail/confirm?newEmail={newEmail}&token={changeEmailToken}";

            return(await emailSender.Send(EmailMessages.EmailChangeEmail(newEmail, callbackUrl)));
        }
        public async Task <GenerateChangeEmailTokenResponse> Handle(GenerateChangeEmailTokenRequest request, CancellationToken cancellationToken)
        {
            if (await authValidationService.EmailExists(request.NewEmail))
            {
                throw new DuplicateException("Email already exists", ErrorCodes.EmailExists);
            }

            var generateChangeEmailTokenResult = await profileService.GenerateChangeEmailToken(request.NewEmail) ??
                                                 throw new TokenException("Error occurred during generating change email token", ErrorCodes.CannotGenerateToken);

            return(await emailSender.Send(EmailMessages.EmailChangeEmail(request.NewEmail,
                                                                         $"{Configuration.GetValue<string>(AppSettingsKeys.ClientAddress)}profile/changeEmail?userId={generateChangeEmailTokenResult.UserId}&token={generateChangeEmailTokenResult.Token}&newEmail={generateChangeEmailTokenResult.NewEmail}"))
                    ? new GenerateChangeEmailTokenResponse()
                    : throw new ServiceException("Sending change email callback failed", ErrorCodes.SendEmailFailed));
        }
Exemple #3
0
        public async Task <bool> SendChangeEmailCallback(string newEmail)
        {
            if (!await CanExecute(newEmail))
            {
                return(false);
            }

            var currentUser = await GetCurrentUser();

            if (currentUser == null)
            {
                return(false);
            }

            var changeEmailToken = await userManager.GenerateChangeEmailTokenAsync(currentUser, newEmail);

            changeEmailToken = cryptoService.Encrypt(changeEmailToken);

            string callbackUrl = $"{Configuration.GetValue<string>(AppSettingsKeys.ServerAddress)}/Profile/ConfirmChangeEmail?newEmail={newEmail}&token={changeEmailToken}";

            return(await emailSender.Send(EmailMessages.EmailChangeEmail(newEmail, callbackUrl)));
        }