2015-01-21 3 views
0

Я разрабатываю CakePHP (2.5.6), и моя цель - использовать как форму, так и базовую аутентификацию.CakePHP Basic Auth redirect на браузере

Мне нужно это, потому что я вызываю некоторые действия для отдыха от приложения Android с базовым auth. Если пользователь посещает веб-сайт с помощью браузера, я хочу использовать форму auth.

Я установил свой AppController для поддержки обоих, и это отлично работает. Но если я получаю доступ к действию, требующему аутентификации, появляется всплывающее предупреждение.

Лучшим способом было бы перенаправить пользователей -> логин. Но сначала появляется предварительное предупреждение.

Как я могу обойти это? Есть ли лучшее решение?

ответ

1

Я решил проблему самостоятельно.

Я добавил префикс маршрута для звонков api.

Configure::write('Routing.prefixes', array('api')); 

core.php файл.

Теперь я могу запускать вызовы api в файле AppController и добавлять базовую аутентификацию только для вызовов 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