我目前正在开发其目前的形式验证的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版本时,我得到一个HTTP认证对话框,而不是基于web的表单。
什么是这样做的最佳方式? 我可以在那一刻想到的唯一方法是创建一个单独的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');
}
}
}