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); }
public async Task <IHttpActionResult> RestorePassword(RestorePasswordDTO restorePasswordDto) { var result = await authService.RestorePassword(restorePasswordDto); if (result.Succeeded) { return(Ok(new { token = result.Data })); } return(BadRequest()); }
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()); }