public async Task <IActionResult> Register(UserPostRegistrationDto request) { if (!ModelState.IsValid) { return(BadRequest(new AuthFailedResponse { Errors = ModelState.Values.SelectMany(x => x.Errors.Select(xx => xx.ErrorMessage)) })); } var authResponse = await _identityService.RegisterAsync(request); if (!authResponse.Success) { return(BadRequest(new AuthFailedResponse { Errors = authResponse.Errors })); } return(Ok(new AuthSuccessResponse { Token = authResponse.Token, RefreshToken = authResponse.RefreshToken })); }
public async Task <AuthenticationResult> RegisterAsync(UserPostRegistrationDto request) { var existingUser = await _userManager.FindByEmailAsync(request.Email); if (existingUser != null) { return(new AuthenticationResult { Errors = new[] { "User with this email already exist" } }); } var user = new User { Id = Guid.NewGuid().ToString(), Email = request.Email, UserName = request.Email, }; var createdUser = await _userManager.CreateAsync(user, request.Password); if (!createdUser.Succeeded) { return(new AuthenticationResult { Errors = createdUser.Errors.Select(x => x.Description) }); } await _userManager.AddToRoleAsync(user, "Client"); return(await GenerateAuthorizationForUserAsync(user)); }