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