Esempio n. 1
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordInputDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values.Select(x => x.Errors.FirstOrDefault().ErrorMessage)));
            }

            var result = await _authService.ForgotPassword(model);

            if (result.Succeeded)
            {
                return(Ok());
            }
            return(BadRequest(result.Errors.Select(x => x.Description)));
        }
Esempio n. 2
0
        public async Task <IdentityResult> ForgotPassword(ForgotPasswordInputDto model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return(IdentityResult.Failed(new IdentityError[]
                {
                    new IdentityError()
                    {
                        Code = "User",
                        Description = "Not Found User"
                    }
                }));
            }
            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackUrl = $"{_client.Url}{_client.ResetPasswordPath}?uid={user.Id}&code={System.Net.WebUtility.UrlEncode(code)}";

            await _emailService.SendPasswordResetAsync(model.Email, callbackUrl);

            return(IdentityResult.Success);
        }