2014-06-13 3 views
0

cakephp 2.4.7로 개발 중이며 매우 혼란스럽고 필요한 것을 구현하는 가장 좋은 방법이 무엇인지 모르겠습니다.cakephp 나머지 API 및 인증

내 케이크 프로젝트는 소셜 네트워크와 유사하며 이미 웹 파트의 큰 부분을 프로그래밍했습니다. 이제 기본 모바일 앱 (iOS, Android 등) 용 API 개발을 시작하겠습니다.

내 프로젝트에서 일반적인 웹 브라우저 방법으로 표준 formauthentication을 사용하고 있습니다.

basicformauthentication 모두 어떻게 사용할 수 있습니까? 웹 브라우저 사용을위한 양식 인증 및 기본 mobiel 응용 프로그램의 기본 인증. 나는 문서의이 부분을 알고

public $components = array(
    '...', 
    'Auth' => array(
     'loginRedirect' => array(
      'controller' => 'users', 
      'action' => 'index' 
     ), 
     'logoutRedirect' => array(
      'controller' => 'users', 
      'action' => 'login' 
     ), 
     'authError' => 'You must be loggedin to view this page.', 
     'loginError' => 'Invalid user credentials.', 
     'authorize' => array('Controller'), 
     'authenticate' => array(
      'Form' => array(
       'userModel' => 'User', 
      ) 
     ), 
     'authorize' => array(
      'Actions' => array('actionPath' => 'controllers') 
     ) 
    ) 
); 

: 같은

내 AppController가 보입니다. 여러 처리기를 사용

당신이 사용자를 로그인하는 다른 방법을 지원할 수를, 인증에 사용자가 로그인 할 때 처리기가 선언 된 순서대로 검사됩니다.

그러나 login 조치는 무엇입니까?

더 좋은 솔루션이 있습니까? 예를 들어 토큰으로 인증합니다.

그리고 난 API versioningprefix routing에 대해 많은 검색. 내가 발견 한 유일한 것은 케이크 2.x는 접두사 라우팅을 지원하지 않는다는 것입니다. 모바일 애플 리케이션을위한 웹 브라우저에 대한

  • /users/view/2
  • /api/1.0/users/view/2.json :

    내 목표는 다음과 같은 구조를 가지고있다. UsersController에서

:

public function view($id = null) { 
// Webbrowser 
} 

public function api_1_0_view($id = null) { 
// mobile app version 1.0 
} 

public function api_2_0_view($id = null) { 
// mobile app version 2.0 
} 

당신이 나에게 내가 문제를 해결할 수있는 방법 아이디어를 줄 수 있습니까?

답변

2

Basic은 로그인 할 필요가없는 상태 비 저장 인증입니다. 자격 증명은 각 요청에서 전달되고 검사됩니다. 자세한 내용은 here을 참조하십시오.

여러 인증 자를 사용하는 AuthComponent을 구성 할 수는 있지만

는 함께 Stateless 및 Stateful 인증 공급자를 사용하지 않는 것이 좋습니다. AppController의 beforeFilter()에서 URL을 확인해야합니다 (휴대 전화의 모든 URL에 "api"접두어가 붙어 있기 때문에 쉽게 알 수 있습니다) Form 또는 Basic 인증 제공자를 선택적으로 사용하십시오.