Проверка подлинности формы CakePHP для обычных запросов с базовой аутентификацией для JSON

Я пытаюсь создать веб-приложение, которое может быть просмотрено пользователем в браузере, но также имеет API для разработчиков, чтобы взаимодействовать с моим приложением. Мой вопрос заключается в том, как изменить аутентификацию на основе того, какой тип запроса он использует в CakePHP?

Я хотел бы, чтобы мое приложение запрашивало пользователей, использующих сайт, с проверкой подлинности формы, но когда запрос приходит с помощью .json, чтобы использовать базовую аутентификацию.

Я пробовал это в своем AppController:

class AppController extends Controller { public $components = array( 'Session', 'Auth' => array( 'loginRedirect' => array( 'controller' => 'journeys', 'action' => 'index' ), 'logoutRedirect' => array( 'controller' => 'pages', 'action' => 'display', 'home' ) ), 'RequestHandler' ); public function beforeFilter() { if($this->params['ext'] == 'json') { $this->Auth->authenticate = array('Basic'); } else { $this->Auth->authenticate = array('Form'); } $this->Auth->allow('display'); } 

}

Я проверил, что предложение в beforeFilter работает, но это похоже на то, что я, похоже, перенаправлен на мою аутентификацию формы, независимо от того, какой URL-адрес я пытаюсь получить и доступ в моем приложении

Функция входа в мой файл UserController выглядит так:

 if ($this->Auth->login()) { return $this->redirect($this->Auth->redirect()); } else { $this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth'); } 

Я прочитал документы на веб-сайте CakePHP, но я не могу найти пример, который поможет мне. Любая помощь будет оценена по достоинству.

ИЗМЕНЕН ДЛЯ КОРРЕКЦИИ КОДЕКСУ И ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ

Я продолжил рассмотрение этой проблемы, и я заметил, что если я зарегистрирую значение:

 $this->Auth->authenticate 

в файле beforeFilter говорится, что он является основным, но он по-прежнему отправляет меня в форму регистрации.