2016-07-04 2 views
0

모바일 애플리케이션 용 케이크 PHP3로 REST API를 개발 중입니다. 모든 요청 헤더에는 모바일 앱 확인을위한 맞춤 매개 변수 호출 X-App-Key이 있습니다. (앱의 고유 ID - X-App-Key : '123456789')Cake PHP3 나머지 API 헤더 매개 변수 유효성 확인

API 끝점에 액세스하기 전에 매개 변수 값을 확인해야합니다. bootstrap.php 또는 다른 장소에서 어떻게 확인하나요? (컨트롤러에서).

유효성 검사 및 필터 요청에 cakephp Dispatcher Filters을 사용할 수 있습니까?

답변

1

Dispatch Filters이 좋은 옵션입니다. 응용 프로그램이 브라우저 요청을 처리 할 예정이라면 컨트롤러가 더 좋을 것입니다.

1) 설정 \의 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

관련 문제