Example #1
0
        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
            }));
        }
Example #2
0
        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));
        }