Аутентификация REST в PHP (CodeIgniter)

Я пишу REST API из своего веб-приложения. Приложение написано с использованием рамки CodeIgniter. Само приложение работает нормально, но я застрял в создании аутентификации REST. Я думаю, что базовая аутентификация Http будет достаточно хорошей в течение некоторого времени. Открытый API еще не запланирован.

Есть ли какой-либо пример кода, как добиться аутентификации REST, поэтому после аутентификации пользователя он может свободно вызывать все защищенные методы.

Ответы

Ответ 2

Если вы используете HTTPS, вы можете использовать обычную проверку подлинности, и это очень легко сделать. Просто добавьте следующий код к контроллеру,

   if (empty($this->input->server('PHP_AUTH_USER')))
   {
       header('HTTP/1.0 401 Unauthorized');
       header('HTTP/1.1 401 Unauthorized');
       header('WWW-Authenticate: Basic realm="My Realm"');
       echo 'You must login to use this service'; // User sees this if hit cancel
       die();
    }

    $username = $this->input->server('PHP_AUTH_USER');
    $password = $this->input->server('PHP_AUTH_PW');

    // Check username and password

Я использую mod_php, ваши имена переменных auth могут отличаться при использовании других модулей SAPI.