コード例 #1
0
        public ActionResult SendVerificationEmail([FromRoute] string userId, [FromBody] EmailVerificationViewModel emailViewModel)
        {
            try
            {
                var user = _userService.GetByEmail(emailViewModel.Email);
                if (user == null || !user.IsActive)
                {
                    return(BadRequest(new { status = 400, title = $"User with email - {emailViewModel.Email} does not exists" }));
                }
                if (user.UserId != userId)
                {
                    return(BadRequest(new { status = 400, title = "Email does not belongs to you" }));
                }

                if (user.IsEmailVerified)
                {
                    return(BadRequest(new { status = 400, title = $"Email address - {emailViewModel.Email} already verified" }));
                }

                _userService.SendVerificationEmail(user);
                return(Ok(new { status = 200, title = "Verification email sent successfully. Please follow the instructions in the email." }));
            }
            catch (Exception e)
            {
                return(BadRequest(new { status = 400, title = "Something went wrong" }));
            }
        }
コード例 #2
0
        public async Task <IActionResult> SendVerificationEmail([FromBody] EmailVerificationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(new ValidationFailedResult(ModelState));
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                ModelState.AddModelError(string.Empty, $"Unable to load user with Email '{model.Email}'.");
                return(new ValidationFailedResult(ModelState));
            }

            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var callbackUrl   = Url.EmailConfirmationLink(user.Email, code, Request.Scheme);
            var emailTemplate = GetEmailConfirmTemplate(user, callbackUrl);

            await _emailSender.SendMessage(emailTemplate);

            return(new ApiOkResult("Verification email sent. Please check your email"));
        }
コード例 #3
0
 public EmailVerificationPage()
 {
     InitializeComponent();
     BindingContext = new EmailVerificationViewModel(Navigation);
 }