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); } }
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)); }
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 })); }
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)); }
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) }); }
public async Task <ActionResult <GetLoginResponseDto> > Login([FromBody] PostLoginDto postLoginDto) { return(Ok(await _service.Login(postLoginDto))); }