2014-01-31 3 views
1

Я некоторое время работал над API , включая проект. У меня есть ApiUsersController, который обрабатывает все действия пользователя для API и другого контроллера API. Но я должен убедиться, что это безопасно, поэтому я создал функцию apiKey(), которая определяет, имеет ли пользователь, отправляющий запрос на мой API, правильные учетные данные.Какова должна быть правильная структура API с использованием CakePHP

Мой вопрос: где я должен поставить функцию apiKey(), чтобы использовать ее в любом контроллере API?

Любые рекомендации по безопасности API также приветствуются.

Спасибо заранее!

+1

Я нашел, что CakePHP OAuth Plugin очень полезен - обрабатывает его много для вас. – Dave

ответ

1

Мой вопрос сейчас где я должен положить функцию apiKey() в порядок , чтобы использовать ее в любом контроллере Api?

Легко ответить, правильное место - authentication adapter. Ceeram уже создал адаптер для использования CakePHP (это то, что вы используете). See this link here.

Если вы хотите более безопасный способ, вы должны пойти на OAuth, как предложил Дейв. Но вместо использования специального плагина OAuth я бы пошел за Opauth for CakePHP, он поставляется с адаптером стратегии OAuth.

Кроме того, вместо создания контроллеров API я бы use prefix routing и передал большую часть кода для действий API с нормальными действиями в модели. Таким образом, его можно использовать повторно очень просто и не нужно дублировать работу.

+0

Ваш ответ был очень полезным, я могу сказать! Спасибо! Что касается маршрутизации префикса для контроллеров api, я благодарю, что это невозможно к тому моменту, когда контроллер api должен обрабатывать данные JSON и обычный контроллер с простыми входными данными .. так что код немного отличается ... но, пожалуйста, вы очень приветствовал, чтобы предложить мне решение этой проблемы тоже :) –

+0

Вы говорите о том, чтобы отправить json на сервер или ответить json? См. Http://book.cakephp.org/2.0/ru/views/json-and-xml-views.html – burzum

+0

Я говорю об обоих, я использую json для запросов и ответов. (Я видел ссылку, которую вы опубликовали, вот что помогло мне построить свою апи до сих пор). –

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