'success', 'data' => $data, ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE ); } /** * method for pretty jsonerror output * * @param array $error * @return string */ public function jsonError ($error) { echo json_encode( [ 'status' => 'failed', 'data' => 'none', 'error' => $error ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE ); } /** * get authentication key out database * * @return array */ private function getAuthKey () { $validTokens = DatabaseShow( "API_Credentials", "TOKEN" ); return array_column($validTokens, 'TOKEN'); } /** * url authentication method via token and optional parameter function * * @param string $token * @param string $function * @return void */ public function urlAuth ($token, $function = '') { $validTokens = $this->getAuthKey(); if (!in_array($token, $validTokens)) { http_response_code(401); $error = json_encode([ "error" => "Unauthorized", "debug_received_token" => $token, ]); echo $this->jsonError($error); DatabaseInsert( "API_LOGS", "CLIENT_IP, TOKEN, API, FUNKTION, JSON", (new getSpecificData())->getClientIP(), $token, (new getSpecificData())->getRequestURL(), $function, $error ); errorMail( "API Login failed", $error, true, ); return false; } return true; } }