public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordViewModel model)
        {
            try
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user.IsNull())
                {
                    return(BadRequest(IdentityEnums.Errors.WhenResetPasswordUserNorFound.ToString()));
                }
                var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                await _emailService.SendAsync(new EmailParam("Reset password Amazon.com")
                                              .AddSendTo(model.Email)
                                              .SetBody(
                                                  EmailHelper.AddParagraph("Please click below link for reset password."),
                                                  EmailHelper.AddLink(string.Format(model.CallbackUrl, GlobalConfig.HostModules[App.SharedKernel.Model.Enums.Modules.Identity]
                                                                                    , model.Email, token), "Click her")));

                return(Ok(token));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <IActionResult> GetUserEmailConfirmationToken(string email, string callback = "{0}users/{1}/confirmemail?token={2}")
        {
            try
            {
                email = email.TrimAndToLower();
                var user = await _userManager.FindByEmailAsync(email);

                if (user.IsNull())
                {
                    return(BadRequest(IdentityEnums.Errors.WhenConfirmEmailThatNotFound.ToString()));
                }
                else if (user.EmailConfirmed)
                {
                    return(BadRequest(IdentityEnums.Errors.WhenConfirmEmailThatAlreadyValidated.ToString()));
                }

                var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                await _emailService.SendAsync(new EmailParam("Confirm Email By Amazon.com")
                                              .AddSendTo(email)
                                              .SetBody(
                                                  EmailHelper.AddParagraph("Please Confirm your email by clicking fologing link"),
                                                  EmailHelper.AddLink(string.Format(callback, GlobalConfig.HostModules[App.SharedKernel.Model.Enums.Modules.Identity]
                                                                                    , email, token), "Click her")));

                return(Ok("token_sent"));
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> ConfirmEmail(string email, string token)
        {
            var result = ActionResultFilter(await _identityService.SetHttpContext(HttpContext).ConfirmUserEmail(email, token));

            SetViewMessage(result.Item1.IsOk(), result.Item1.IsOk() ? $"Email Confirmed success.{EmailHelper.AddLink($"identity/{nameof(Login)}", "Please login to the system.")}" : result.Item2.ToString());
            return(View());
        }