Пример #1
0
        public async Task LoginAsync_ShouldReturnJwtTokenResponse_WhenInputIsValid()
        {
            // Arrange
            var clientToLogin = new ClientLoginRequest
            {
                Login    = "******",
                Password = "******"
            };
            var client   = new Client();
            var jwtToken = new JwtTokenResponse {
                Token = "token", RefreshToken = "refreshToken"
            };

            _clientRepository.FindByLoginAsync(Arg.Any <string>()).Returns(client);
            _passwordHasher.Validate(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(true);
            _jwtBearer.CreateToken(client).Returns(jwtToken);
            _clientRepository.SaveAsync().Returns(1);
            // Act
            var token = await _sut.LoginAsync(clientToLogin);

            // Assert
            token.Should().NotBeNull();
            token.Should().Be(jwtToken);
        }
Пример #2
0
        public async Task <JwtTokenResponse> LoginAsync(ClientLoginRequest model)
        {
            var client = await _repository.FindByLoginAsync(model.Login);

            if (client == null)
            {
                return(null);
            }

            var loginResult = _passwordHasher.Validate(model.Password, client.Salt, client.Hash);

            if (!loginResult)
            {
                return(null);
            }

            return(await GenerateAndSaveTokenAsync(client));
        }