私は現在、フォーム認証を備えたCakePHPアプリケーションを開発しています。また、このアプリケーションを開いて、他のアプリケーションがREST経由で接続できるようにしたいと思います。
私はCakePHPがこれを使用してこれを行うことができることを知っています
Router::mapResources()
と
Router::parseExtensions()
ただし、これを基本またはダイジェストHTTP認証などで機能させる方法がわかりません。
AppController.phpに次のものがあります
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Form'
),
'loginAction' => array(
'admin' => false,
'controller' => 'users',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'users',
'action' => 'home'
)
)
);
たとえば、認証フィールドの場合、「基本」にあります。Webベースのバージョンにログインすると、WebベースのフォームではなくHTTP認証ボックスが表示されます。
これを行うための最良の方法は何ですか?現時点で私が考えることができる唯一の方法は、別のApiControllerを作成し、手動で認証を行うことです。
どんなアドバイスも素晴らしいでしょう。
アップデート:
これは私に正しい振る舞いを与えている私の改訂されたコードです-これを行うためのより良い方法があるはずだと私はかなり確信しています。
class AppController extends Controller {
public $components = array(
'Session',
'RequestHandler',
'Auth' => array(
'loginAction' => array(
'admin' => false,
'controller' => 'users',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'users',
'action' => 'home'
)
)
);
public $helpers = array('Html', 'Form', 'Session');
public function beforeFilter() {
$header = $_SERVER['HTTP_AUTHORIZATION'];
if($header) {
$this->Auth->authenticate = array('Basic');
}
}
}