public async Task <IActionResult> ResetPasswordRequestAsync(PasswordResetInput model) { var account = await _userAccountService.GetByEmailAsync(model.Email, x => x.PasswordResetSecretCollection); if (account == null) { ModelState.AddModelError("", "Invalid email"); return(BadRequest(ModelState.Errors())); } if (!account.PasswordResetSecretCollection.Any()) { await _userAccountService.ResetPasswordAsync(model.Email); return(Ok()); } var bytes = Encoding.UTF8.GetBytes(account.Guid.ToString()); bytes = _protector.Protect(bytes); var vm = new PasswordResetWithSecretInputModel { ProtectedAccountID = Convert.ToBase64String(bytes), Questions = account.PasswordResetSecretCollection.Select( x => new PasswordResetSecretViewModel { QuestionId = x.Guid, Question = x.Question }).ToArray() }; return(Ok(vm)); }
public Task <ActionResult> PasswordResetStartAsync(string email) { PasswordResetInput input = new PasswordResetInput() { email = email }; var request = new RestRequest(Method.POST); request.Resource = "auth/password_reset/start"; request.AddJsonBody(input); return(this.Sdk.ExecuteAsync <ActionResult>(request)); }
public Task <ActionResult> PasswordResetCompleteAsync(string email, string token, string password) { PasswordResetInput input = new PasswordResetInput() { email = email, password = password, token = token }; var request = new RestRequest(Method.POST); request.Resource = "auth/password_reset/complete"; request.AddJsonBody(input); return(this.Sdk.ExecuteAsync <ActionResult>(request)); }
public object PasswordResetComplete(PasswordResetInput input) { return(base.ExecuteFunction <object>("PasswordResetComplete", delegate() { bool success = false; Account account = this.API.Direct.Accounts.GetByEmail(input.email); if (account != null) { success = this.API.Direct.Accounts.PasswordResetComplete(account.account_id, input.token, input.password); } return base.Http200(new ActionResult() { success = success }); })); }
public object PasswordResetStart(PasswordResetInput input) { return(base.ExecuteFunction <object>("PasswordResetStart", delegate() { string test = this.Request.Content.ReadAsAsync <string>().Result; Account account = this.API.Direct.Accounts.GetByEmail(input.email); if (account != null) { this.API.Direct.Accounts.PasswordResetStart(account.account_id); } return base.Http200(new ActionResult() { success = true }); })); }