2016-07-04 8 views
0

私はモバイルアプリケーション用のケーキPHP3でREST APIを開発しています。 すべてのリクエストヘッダーには、モバイルアプリの確認用のカスタムパラメータ呼び出しX-App-Keyがあります。 (アプリケーションの一意のID - X-App-Key: '123456789')ケーキPHP3は残りのAPIヘッダーパラメータを確認します

APIエンドポイントにアクセスする前に、そのパラメータ値を確認する必要があります。 bootstrap.phpまたは他の場所からどのようにチェックしますか? (コントローラ内)。

これはcakephp Dispatcher Filtersの検証とフィルタリング要求に使用できますか?

答えて

1

はいDispatch Filtersはここでは良いオプションです。あなたのアプリケーションがブラウザの要求にも対応するつもりなら、コントローラはより良いでしょう。

1)のconfig \のbootstrap.phpの

DispatcherFactory::add('ApiHeader'); 

2)のsrc \ルーティング\フィルターの\ 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; 
     } 
    } 
} 
あなたが使用することもでき

を:派遣フィルタについて、あなたはそれが好き行うことができます

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

参考リンク::データベースクエリのためのTableRegistery Request Headers & Dispatch Filters

関連する問題