2010-05-09 21 views
15

Escribo API REST desde mi aplicación web. La aplicación está escrita usando el framework CodeIgniter. La aplicación en sí está funcionando bien, pero estoy atascado en hacer Autenticación REST. Creo que la Autenticación Http básica será lo suficientemente buena por algún tiempo. La API pública aún no está planificada.Autenticación REST en PHP (CodeIgniter)

¿Hay algún ejemplo de código sobre cómo lograr la Autenticación REST para que luego de autenticarse el usuario pueda llamar libremente a todos los métodos protegidos?

Respuesta

34

He escrito un controlador REST para facilitar la compilación de las aplicaciones REST. Puede leerlo al respecto en NetTuts: Working with RESTful services in CodeIgniter.

+0

Esto parece un tutorial muy completo, lo leeré con certeza. – zidane

+0

Acabo de comprobar Phil's tut, gran cosas Phil, muy informativo! – k00k

+0

¡Cubrió la seguridad en REST_Controller! Esto es genial, gracias otra vez! – zidane

8

Si usa HTTPS, puede usar la autenticación básica y es muy fácil de hacer. Sólo tiene que añadir código siguiente a su controlador,

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 

utilizo mod_php, los nombres de las variables de autenticación puede ser diferente si se utilizan otros módulos SAPI.

+0

HTTP es imprescindible para cifrar el nombre de usuario simple y la contraseña en cada solicitud. ¡Gracias! – zidane