public void AuthenticateShouldLoginAUser()
        {
            var options = new DbContextOptionsBuilder <UsersDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(AuthenticateShouldLoginAUser))
                          .Options;

            using (var context = new UsersDbContext(options))
            {
                var usersService = new UsersService(context, registerValidator, config);
                var added        = new PostUserDto

                {
                    FirstName = "test_first",
                    LastName  = "test_last",
                    Username  = "******",
                    Password  = "******"
                };
                var result        = usersService.Register(added);
                var authenticated = new PostLoginDto
                {
                    Username = "******",
                    Password = "******"
                };

                var authresult = usersService.Authenticate(added.Username, added.Password);
                Assert.IsNotNull(authresult);
                Assert.AreEqual(authenticated.Username, authresult.Username);
            }
        }
Example #2
0
        public IActionResult PostLogin([FromBody] PostLoginDto dto)
        {
            if (dto.Username != "test" || dto.Password != "test")
            {
                return(BadRequest("Invalid username or password"));
            }


            var handler = new JwtSecurityTokenHandler();

            var descriptor = new SecurityTokenDescriptor
            {
                Audience = DemoDefaults.Audience,
                Issuer   = DemoDefaults.Issuer,
                Expires  = DateTime.UtcNow.AddDays(1),

                Subject = new ClaimsIdentity(new List <Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, dto.Username)
                }),

                SigningCredentials = new SigningCredentials(
                    new SymmetricSecurityKey(
                        Encoding.UTF8.GetBytes(_configuration.GetValue <string>("Security:SigningKey"))),
                    SecurityAlgorithms.HmacSha256Signature)
            };

            var token = handler.CreateToken(descriptor);
            var jwt   = handler.WriteToken(token);

            return(Ok(jwt));
        }
Example #3
0
        public async Task <IActionResult> Login(PostLoginDto postLoginDto)
        {
            LoginResponse loginResponse = await _authService.Login(postLoginDto.Email, postLoginDto.Password);

            UserDto result = _mapper.Map <UserDto>(loginResponse.AppUser);

            return(Ok(new { loginResponse.Token, User = result }));
        }
Example #4
0
        public IActionResult Authenticate([FromBody] PostLoginDto login)
        {
            var user = _userService.Authenticate(login.Username, login.Password);

            if (user == null)
            {
                return(BadRequest(new { message = "Username or password is incorrect" }));
            }


            return(Ok(user));
        }
Example #5
0
        public async Task <GetLoginResponseDto> Login(PostLoginDto postLoginDto)
        {
            var user = await _unityOfWork.UserRepository.GetAsync(user => user.Email == postLoginDto.Email);

            var isInvalidPassword = user == null || !_hashService.Compare(user.Password, postLoginDto.Password);

            if (isInvalidPassword)
            {
                throw new NotFoundException("Usuário e/ou senha incorreta");
            }

            return(new GetLoginResponseDto
            {
                AccessToken = _tokenService.Generate(user)
            });
        }
Example #6
0
 public async Task <ActionResult <GetLoginResponseDto> > Login([FromBody] PostLoginDto postLoginDto)
 {
     return(Ok(await _service.Login(postLoginDto)));
 }