public async Task <IActionResult> ConfirmEmail(string userId, string code) { if (userId == null || code == null) { return(BadRequest("Não foi possível confirmar o email")); } var confirmEmail = new ConfirmEmailDTO(); var user = await _userManager.FindByIdAsync(userId); if (user == null) { return(NotFound($"Usuário ID '{userId}' não encontrado.")); } else { confirmEmail.Code = code; confirmEmail.Email = user.Email; confirmEmail.UserId = userId; var retorno = await _userManager.ConfirmEmailAsync(user, confirmEmail.Code); //buscar no banco de dados empresa o site para redirecionar //var siteEmpresa = "https://localhost:44303/"; var siteEmpresa = "https://mecanicoweb.azurewebsites.net"; return(Redirect(siteEmpresa)); } }
public async Task <IActionResult> CreateUser(RegistrationViewModel registrationModel) { var fullPath = DefaultUserImagePath(); var image = registrationModel.Avatar; if (string.IsNullOrEmpty(image)) { registrationModel.Avatar = ImageConvertor.GetImageFromPath(fullPath); } else { registrationModel.Avatar = await Downloader.GetImageAsBase64Url(image); } var newUser = await _userService.CreateUserAsync(registrationModel); if (newUser == null) { throw new ValidationException(HttpStatusCode.Forbidden, _localizer["UserAlreadyExists"].Value); } var confirmEmailDto = new ConfirmEmailDTO { UserEmail = newUser.Email, CallbackUrl = registrationModel.CallbackUrlForEmailConfirm }; await _emailConfirmationService.SendConfirmEmailLinkAsync(confirmEmailDto); return(Ok()); }
public async Task <ConfirmEmailDTO> ConfirmEmail(string token, string email) { var path = "ConfirmEmail"; var confirmEmailDTO = new ConfirmEmailDTO() { EmailAddress = email, Token = token }; var controllerResponseDTO = await Post <ConfirmEmailDTO>(path, confirmEmailDTO); return(controllerResponseDTO.Content); }
public async Task <ActionResult> ConfirmEmail([FromQuery] ConfirmEmailDTO model) { var user = await _userManager.FindByIdAsync(model.UserId); if (user != null) { await _userManager.ConfirmEmailAsync(user, model.Token); return(Ok()); } else { return(BadRequest("Username or token invalid")); } }
public async Task ConfirmEmail(ConfirmEmailDTO confirmEmailDTO) { User user = await _userManager.FindByEmailAsync(confirmEmailDTO.Email); if (user == null) { throw new NotFoundException("There is no user with such email"); } var result = await _userManager.ConfirmEmailAsync(user, confirmEmailDTO.Code); if (!result.Succeeded) { throw new ValidationException("Invalid confirmation code"); } }
public async Task SendConfirmEmailLinkAsync(ConfirmEmailDTO confirmEmailDto) { var user = await _unitOfWork.UserRepository.SingleOrDefaultAsync(u => u.Email == confirmEmailDto.UserEmail); if (user == null) { throw new ApiException(HttpStatusCode.NotFound, "User was not found."); } var role = await _unitOfWork.RoleRepository.GetAsync(user.RoleId); var accessToken = _jwtManager.GenerateAccessToken(user.Id, user.Email, role.Name); var callbackUrl = confirmEmailDto.CallbackUrl + accessToken; var message = _message + callbackUrl; await _emailSenderService.SendEmailAsync(user.Email, "Fin App: confirm email", message); }
public async Task <ControllerResponseDTO <ConfirmEmailDTO> > ConfirmEmail(ConfirmEmailDTO confirmEmailDTO) { var user = await UserManager.FindByEmailAsync(confirmEmailDTO.EmailAddress); var identityResult = await UserManager.ConfirmEmailAsync(user, confirmEmailDTO.Token); if (identityResult.Succeeded) { return(new ControllerResponseDTO <ConfirmEmailDTO>() { Content = confirmEmailDTO }); } confirmEmailDTO.HasErrors = true; return(new ControllerResponseDTO <ConfirmEmailDTO>() { ErrorMessage = identityResult.Errors.First().Description, Content = confirmEmailDTO }); }
public async Task <ActionResult> ConfirmAccount([FromQuery] ConfirmEmailDTO confirmEmailDTO) { var badResult = Redirect($"{ApplicationConstants.LoginFrontendDefaultEndpoint}?msg=El enlace es incorrecto o ha expirado"); var user = await userManager.FindByIdAsync(confirmEmailDTO.UserId); if (user == null) { return(badResult); } var result = await userManager.ConfirmEmailAsync(user, confirmEmailDTO.Token); if (result.Succeeded) { return(Redirect($"{ApplicationConstants.LoginFrontendDefaultEndpoint}?msg=Tu cuenta ha sido confirmada exitosamente, ya puedes iniciar sesion")); } else { return(badResult); } }
public async Task <IActionResult> SendConfirmEmailLinkAsync(ConfirmEmailDTO confirmEmailDto) { await _emailConfirmationService.SendConfirmEmailLinkAsync(confirmEmailDto); return(Ok()); }
public async Task ConfirmEmail([FromBody] ConfirmEmailDTO confirmEmailDTO) { await accountService.ConfirmEmail(confirmEmailDTO); }