public async Task <AuthResult <Token> > RestorePassword(RestorePasswordDTO restorePasswordDto)
        {
            if (restorePasswordDto == null ||
                string.IsNullOrEmpty(restorePasswordDto.Email) ||
                string.IsNullOrEmpty(restorePasswordDto.Token) ||
                string.IsNullOrEmpty(restorePasswordDto.NewPassword) ||
                string.IsNullOrEmpty(restorePasswordDto.ConfirmPassword) ||
                string.IsNullOrEmpty(restorePasswordDto.ConfirmPassword) ||
                restorePasswordDto.ConfirmPassword != restorePasswordDto.NewPassword
                )
            {
                return(AuthResult <Token> .UnvalidatedResult);
            }

            var user = await userManager.FindByEmailAsync(restorePasswordDto.Email);

            if (user != null && user.Id > 0 && !user.IsDeleted)
            {
                var result = await userManager.ResetPasswordAsync(user.Id, restorePasswordDto.Token, restorePasswordDto.NewPassword);

                if (result.Succeeded)
                {
                    var token = JwtManager.GenerateToken(await userManager.CreateIdentityAsync(user));
                    return(AuthResult <Token> .TokenResult(token));
                }
            }

            return(AuthResult <Token> .UnvalidatedResult);
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> RestorePassword(RestorePasswordDTO restorePasswordDto)
        {
            var result = await authService.RestorePassword(restorePasswordDto);

            if (result.Succeeded)
            {
                return(Ok(new { token = result.Data }));
            }

            return(BadRequest());
        }
Ejemplo n.º 3
0
        public IHttpActionResult RestorePassword(RestorePasswordDTO model)
        {
            var currentUser = UserManager.FindByEmail(model.Email);

            if (currentUser == null)
            {
                HttpCode(HttpStatusCode.Forbidden);
                HttpMessage("User with this email address not finded");

                return(Ok());
            }

            var confimationToken = UserManager.GeneratePasswordResetToken(currentUser.Id);
            var newPassword      = System.Web.Security.Membership.GeneratePassword(6, 0);

            UserManager.ResetPassword(currentUser.Id, confimationToken, newPassword);
            _messageService.AddRestorePasswordMessage(currentUser, newPassword);

            HttpCode(HttpStatusCode.OK);
            return(Ok());
        }