2016-07-04 9 views
0

Ich entwickle REST API mit Kuchen PHP3 für die mobile Anwendung. Jeder Anforderungsheader verfügt über einen benutzerdefinierten Parameteraufruf X-App-Key für die mobile App verify. (Eindeutige ID für die App - X-App-Key: '123456789')Kuchen PHP3 validieren Rest API Header-Parameter

Ich muss diesen Parameterwert prüfen, bevor ich auf API-Endpunkte zugreifen kann. Wie überprüfen Sie von bootstrap.php oder einem anderen Ort. (in Controller).

Kann dies Cacheph Dispatcher Filters für Validieren und Filter Anfragen verwenden?

Antwort

1

Ja Dispatch Filters wäre hier eine gute Option. Wenn Ihre Anwendung auch Browseranforderungen bedienen soll, wäre der Controller besser. Für den Versand Filter, können Sie es gerne tun:

1) config \ bootstrap.php

DispatcherFactory::add('ApiHeader'); 

2) src \ Routing \ Filter \ ApiHeaderFilter.php

namespace App\Routing\Filter; 

use Cake\Event\Event; 
use Cake\Routing\DispatcherFilter; 

class ApiHeaderFilter extends DispatcherFilter 
{ 

    public function beforeDispatch(Event $event) 
    { 
     $request = $event->data['request']; 
     $xAppKey = $request->header('X-App-Key'); 
     if ($xAppKey != '123456789') { 
      // throw exception or message 
      exit; 
     } 
    } 
} 

Sie auch verwenden können TableRegistery für Datenbankabfrage:

use Cake\ORM\TableRegistry; 
... 
$tableModel = TableRegistry::get('table_name'); 
$xAppKeys = $tableModel->find('all', ... 

Referenz Links: Request Headers & Dispatch Filters