diff --git a/library/ApiController.php b/library/ApiController.php index aee4fa9..cca7f62 100644 --- a/library/ApiController.php +++ b/library/ApiController.php @@ -1,30 +1,37 @@ headers = $_SERVER; - } + $this->authenticated = false; + + $input = file_get_contents('php://input'); + if(empty($input)){ + $this->input = NULL; + }else{ + $this->input = json_decode($input, true); + if(json_last_error() != JSON_ERROR_NONE){ + throw new Exception("Invalid request payload", 400); + } + } + } function requireAuth(){ - if (isset($this->headers['HTTP_AUTHORIZATION'])) { - $this->autenticated = $this->apiManager->validateToken(explode(' ', $this->headers['HTTP_AUTHORIZATION'])[1]); + if (isset($this->headers['HTTP_AUTHORIZATION'])) { + // TODO: call appropriate class/method + $authManager = new AuthManager(); + $this->authenticated = $authManager>validateToken($this->headers['HTTP_AUTHORIZATION']); + if(!$this->authenticated){ + throw new Exception("Auth required", 401); + } } else { - $error = new ApiError(); - $error->code = "missing_token_header"; - $error->message = "Missing Token in Header"; - $error->hint = "check paiload header for 'token'"; - echo json_encode($error); - die(); + throw new Exception("Auth required", 401); } - } + } function response($data = [], $httpCode = '200'){ - http_response_code($httpCode); - echo json_encode($data); - die(); + http_response_code($httpCode); + echo json_encode($data); } -} \ No newline at end of file +}