示例#1
0
        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));
        }
示例#2
0
        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
            }));
        }
示例#3
0
        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."));
            }
        }