Я разрабатываю с CakePHP (2.5.6
) и моя цель — использовать как форму, так и базовую аутентификацию.
Мне это нужно, потому что я вызываю некоторые действия по отдыху из приложения для Android с базовой аутентификацией. Если пользователь заходит на сайт через браузер, я хочу использовать форму авторизации.
Я настроил свой AppController
чтобы поддержать оба, и это прекрасно работает. Но если я получаю доступ к действию, требующему аутентификации, всплывает основное уведомление об аутентификации.
Лучший способ — перенаправить пользователей -> войти. Но сначала появляется основное уведомление об аутентификации.
Как я могу обойти это? Есть ли лучшее решение?
Я решил проблему самостоятельно.
Я добавил префикс маршрута для вызовов API.
Configure::write('Routing.prefixes', array('api'));
в core.php
файл.
Теперь я могу инициировать вызовы API в AppController
‘beforeFilter’ и добавить обычную аутентификацию только для вызовов API.
public function beforeFilter()
{
if(isset($this->request->params['api']))
{
// api call
// Pass settings in
$this->Auth->authenticate = array(
'Basic' => array('userModel' => 'User')
);
}
}
Пример действия.
PostsController -> индекс
public function api_index {
}
Адрес: domain.de/api/posts/index.json
Других решений пока нет …