Example #1
0
 public function __invoke($req, $res, $next)
 {
     $token = Auth::getToken($req);
     /*
      * Il token può essere false in una delle seguenti circostanze
      *  1-nessun header di autenticazione inviato con la richiesta
      *  2-il token non è valido
      */
     if (!$token) {
         return $res->withStatus(401)->write(JsonHelper::fail('Impossibile autenticare il token.'));
     }
     /*
      * Verifico che il token sia del tipo atteso
      */
     $payloadAtteso = ['id_utenza', 'tipologia'];
     foreach ($payloadAtteso as $k) {
         if (!isset($token->{$k})) {
             return $res->withStatus(401)->write(JsonHelper::fail('Il token ha un payload non conforme alle aspettative.'));
         }
     }
     /*
      * Se il token è corretto, verifico che il payload id_utenza
      * faccia riferimento ad un utente realmente esistente
      */
     $result = Store::getUtenzaById($token->id_utenza);
     if (!$result) {
         return $res->withStatus(404)->write(JsonHelper::fail('Utente inesistente.'));
     }
     /*
      * Imposto gli argomenti dell'utenza corrente
      */
     $route = $req->getAttributes()['route'];
     $route->setArgument('_id_utenza', (string) $result['id']);
     $route->setArgument('_tipologia', $result['tipologia']);
     return $next($req, $res);
 }
Example #2
0
 $app->get('/catalog[/{table}]', function ($req, $res, $args) {
     $table = isset($args['table']) ? $args['table'] : null;
     $result = Store::catalog($table);
     if (!$result) {
         return $res->withStatus(404)->write(JsonHelper::fail('Tabella inesistente.'));
     }
     return $res->write(JsonHelper::success($result));
 });
 /**
  *
  */
 $app->post('/autenticazione', function ($req, $res) {
     $body = $req->getParsedBody();
     $codiceFiscale = isset($body['codice_fiscale']) ? $body['codice_fiscale'] : '';
     $password = isset($body['password']) ? $body['password'] : '';
     $result = Auth::authenticate($codiceFiscale, $password);
     if (!$result) {
         return $res->withStatus(403)->write(JsonHelper::fail('Codice Fiscale e/o Password errati.'));
     }
     return $res->write(JsonHelper::success($result));
 });
 /**
  *
  */
 $app->get('/profilo/{id_utenza:\\d}', function ($req, $res, $args) {
     $idUtenza = $args['id_utenza'];
     $tipologia = $args['_tipologia'];
     $queryParams = $req->getQueryParams();
     $incsQuery = isset($queryParams['include']) ? $queryParams['include'] : '';
     $result = Store::getProfilo($idUtenza, $tipologia, $incsQuery);
     $res->write(JsonHelper::success($result));