Пример #1
0
        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)
            });
        }
Пример #2
0
        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)
            });
        }