public void AuthenticateShouldLoginAUser() { var options = new DbContextOptionsBuilder <ExpensesDbContext>() .UseInMemoryDatabase(databaseName: nameof(AuthenticateShouldLoginAUser)) .Options; using (var context = new ExpensesDbContext(options)) { var usersService = new UserService(context, config); var added = new RegisterUserPostDto // { FullName = "codruta", Username = "******", Email = "*****@*****.**", Password = "******" }; var result = usersService.Register(added); var authenticated = new LoginPostDto { Username = "******", Password = "******" }; var authresult = usersService.Authenticate(added.Username, added.Password); Assert.IsNotNull(authresult); Assert.AreEqual(1, authresult.Id); Assert.AreEqual(authenticated.Username, authresult.Username); } }
public IActionResult Authenticate([FromBody] LoginPostDto 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 <IActionResult> Login(LoginPostDto loginDto) { var user = await _userRepository.GetByUsername(loginDto.Username); if (user == null) { return(NotFound()); } var hash = _encrypter.GetHash(loginDto.Password, user.Salt); if (hash != user.Hash) { return(NotFound()); } var token = _jwtHandler.CreateToken(user.Id); return(Ok(token)); }