2014-02-13 2 views
0

Когда пользователь отправляет регистрационную форму для аутентификации этого пользователя вместо использования аутентификации по умолчанию cakephp $this->Auth->login() Я хочу называть api на основе java, где я буду отправлять идентификатор пользователя и пароль, введенные пользователем, и что api вернет детали пользователя, если пользователь аутентичен и false, если нет. Я хочу использовать cakephp AuthComponent для остальной части вещи (например: сеансы и т. Д.), Но только для проверки подлинности пользователя я хочу позвонить в api. Это возможно ? могу ли я переопределить некоторый основной метод?Аутентифицировать пользователя с помощью моей собственной функции/api?

Спасибо.

+0

Я не эксперт CakePHP, но я думаю, что бы вы смогли бы заполнить/создать объект идентификации вручную, основываясь на том, что вы получите обратно от вызова API. – Newbi3

ответ

0

Вы можете создать класс, расширяющий BaseAuthenticate в Controllers/Component/Auth путь к папке. Там вам нужно реализовать метод authenticate(), который, если он был успешно зарегистрирован, должен вернуть массив с пользовательскими данными, а если нет, верните false.

Тогда вы говорите Auth компонент использовать пользовательскую аутентификацию, когда вы вызываете его в AppController по:

'Auth' => array(
    'authenticate' => array(
     'yourNewAuth' => array(
      //other stuff 
     ) 
    ) 
) 
+0

Спасибо. Я создал класс проверки подлинности. Он работает нормально, если я возвращаю массив данных пользователя, но в случае FALSE (то есть пользователь не найден), cakephp игнорирует это и регистрирует пользователя (игнорируя мой класс), хотя он должен показывать ошибку. – ManinGreen

+0

выглядит так, cakephp работает со своей собственной функцией аутентификации по умолчанию после запуска моего. Как я могу это исправить\? – ManinGreen

Смежные вопросы