public async Task <LoginResponse> RegistrationAsync([FromBody] RegistrationRequest request) { var user = await _userService.GetByEmailAsync(request.Email); if (user != null) { throw new AppErrorException(new AppError(ErrorCode.UserAlreadyExist)); } user = new User { Email = request.Email, PasswordHash = HashUtils.CreateHash(request.Password), FirstName = request.FirstName, LastName = request.LastName, InviteLink = CreateInviteLink(8) }; await _userService.AddAsync(user); var token = _mailTokenService.EncryptToken(user.Email); var model = new ConfirmRegisterEmailModel { UserId = user.Id, Email = user.Email, Token = token }; await _queueProvider.SendMessageAsync(model.ToJson()); return(new LoginResponse { AccessToken = _authService.GenerateAccessToken(user), RefreshToken = _authService.GenerateRefreshToken(user) }); }
public async Task <LoginResponse> UpdatePassword([FromBody] UpdatePasswordRequest data) { var user = await _userService.GetByIdAsync(UserId); if (user == null || data.ConfirmPassword != data.NewPassword) { throw new AppErrorException(new AppError(ErrorCode.IncorrectData)); } user.PasswordHash = HashUtils.CreateHash(data.ConfirmPassword); await _userService.SaveChangesAsync(); return(new LoginResponse { AccessToken = _authService.GenerateAccessToken(user), RefreshToken = _authService.GenerateRefreshToken(user) }); }