<?php require_once __DIR__ . '/bootstrap.php'; use Api\Application; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; $app = new Application(['em' => $em]); $app->before(function (Request $request) { if ($request->getMethod() == 'OPTIONS') { return; } $tokens = (require_once __DIR__ . '/config/token.php'); if (!$tokens) { throw new \Exception("Error Processing Token file", 1); } if (!$request->headers->has('X-Token')) { return new Response('Unauthorized', 401); } if (!in_array($request->headers->get('X-Token'), array_keys($tokens))) { return new Response('Unauthorized', 401); } if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) { $data = json_decode($request->getContent(), true); $request->request->replace(is_array($data) ? $data : array()); } }); $app->after(function (Request $request, Response $response) { $response->headers->set('Access-Control-Allow-Origin', '*'); $response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, X-Token'); });