public async Task <AuthenticationResult> RegisterAsync(AuthRegisterRequest request) { request.Email = request.Email.ToLower(); if (await UserExists(request.Email)) { return new AuthenticationResult { Error = "Użytkownik z takim adresem email już istnieje" } } ; User newUser = _mapper.Map <User>(request); newUser.RoleId = 3; _authHelper.CreatePasswordHash(request.Password, out byte[] passwordHash, out byte[] passwordSalt); newUser.PasswordHash = passwordHash; newUser.PasswordSalt = passwordSalt; await _context.Users.AddAsync(newUser); int created = await _context.SaveChangesAsync(); if (created <= 0) { return new AuthenticationResult { Error = "Rejestracja nie powiodła się" } } ; return(await GenerateAuthenticationResultAsync(newUser)); }
public async Task <IActionResult> Register([FromBody] AuthRegisterRequest request) { var authResponse = await _authService.RegisterAsync(request); if (!authResponse.Success) { return(BadRequest(new ErrorResponse(authResponse.Error))); } return(Ok(new AuthSuccessResponse { Token = authResponse.Token, RefreshToken = authResponse.RefreshToken })); }
public async Task <IActionResult> RegisterAsync( [FromBody] AuthRegisterRequest request) { try { var identityUser = new IdentityUser { UserName = request.Username, }; var identityRegistration = await _identityUserManager.CreateAsync(identityUser, request.Password); if (!identityRegistration.Succeeded) { return(BadRequest(identityRegistration.Errors.Select(e => e.Description))); } var chatUser = await _chatUserManager.CreateUserAsync(new CreateUserModel { Username = request.Username, }); if (chatUser is null) { await _identityUserManager.DeleteAsync(identityUser); return(BadRequest()); } return(Ok()); } catch (Exception ex) { _logger.LogWarning(ex, "Registration failed."); return(BadRequest("Could not complete registration.")); } }