Ответ 1
Если вы знакомы с другими API-интерфейсами, вы увидите общий шаблон. Я рекомендую метод аутентификации, в котором пользователь передает свой адрес электронной почты и пароль, который будет возвращать сгенерированный уникальный ключ auth. Ключ auth будет как идентификатор сеанса, подумайте о том, как работают cookie. Затем все другие методы API должны проверять $this- > post ('auth'), и вам нужно сравнить это с обработчиком сеанса (т.е. С базой данных или сеансами), прежде чем обрабатывать каждый запрос.
Кажется, много кода, да? Нет.
Все ваши модели должны иметь перегруженный конструктор:
class MyAPIController extends Rest_controller
{
public function __construct()
{
parent::__construct();
if(!authCheck($this->post('auth'))){
returnFailedResponse();
exit();
}
}
Тогда напишите вам API как правило, как в примерах на сайте Phil Sturgeon. http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/
Сделайте модель, у которой есть authCheck, чтобы проверить, что ключ auth действителен, и создайте метод returnFailedResponse, чтобы вернуть 401 Unauthorized.
В другом контроллере, позвоните ему "Auth", используйте описанный выше конструктор.
Теперь каждый вызов вашего api должен установить заголовок для Auth. Ex. 'Auth: 12m34k23b'.