2010-05-09 18 views
15

Ich schreibe REST API Form meiner Webanwendung. Anwendung wird mit CodeIgniter-Framework geschrieben. Die Anwendung selbst funktioniert gut, aber ich bleibe bei der Erstellung der REST-Authentifizierung. Ich denke, dass die grundlegende HTTP-Authentifizierung für einige Zeit gut genug sein wird. Die öffentliche API ist noch nicht geplant.REST-Authentifizierung in PHP (CodeIgniter)

Gibt es ein Codebeispiel, wie REST-Authentifizierung zu erreichen, so dass nach dem authentifizierten Benutzer frei alle geschützten Methoden aufgerufen werden können.

Antwort

34

Ich habe einen REST-Controller geschrieben, um die Erstellung von REST-Anwendungen zu vereinfachen. Sie können alles über NetTuts: Working with RESTful services in CodeIgniter lesen.

+0

Das sieht nach einem sehr umfassenden Tutorial aus, ich werde es sicherlich lesen. – zidane

+0

Habe gerade Phils Tut ausgecheckt, tolle Sachen Phil, sehr informativ! – k00k

+0

Sie haben die Sicherheit in REST_Controller abgedeckt! Das ist großartig, danke nochmal! – zidane

8

Wenn Sie HTTPS verwenden, können Sie die Standardauthentifizierung verwenden und es ist sehr einfach zu tun. folgenden Code zu dem Controller,

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 

Ich benutze mod_php, Ihre Auth Variablennamen vielleicht anders, wenn mit anderen SAPI-Module einfach hinzufügen.

+0

Also HTTP ist ein Muss, um einfachen Benutzernamen und Passwort in jeder Anfrage zu verschlüsseln. Danke! – zidane