예제 #1
0
        public Result Authenticate(string name, string password)
        {
            var user = _unitOfWork.RepositoryBase.FirstOrDefault <User>(u => u.Name == name);

            if (user == null)
            {
                return new Result()
                       {
                           Status  = false,
                           Message = "Usuário não encontrado."
                       }
            }
            ;

            var passwordValidation = _cryptService.IsValid(password, user?.Password);

            if (!passwordValidation)
            {
                return new Result()
                       {
                           Status  = false,
                           Message = "Senha inválida!"
                       }
            }
            ;

            if (!user.Status)
            {
                return new Result()
                       {
                           Status  = false,
                           Message = "Usuário desativado."
                       }
            }
            ;

            var authenticationToken = _authenticationTokenService.CreateAuthenticationToken(user);

            return(new Result()
            {
                Status = true,
                Message = authenticationToken
            });
        }
    }
}