2010-05-09 16 views
15

Piszę REST API z mojej aplikacji internetowej. Aplikacja napisana jest przy użyciu frameworka CodeIgniter. Sama aplikacja działa dobrze, ale utknąłem na tworzeniu uwierzytelniania REST. Myślę, że podstawowa autoryzacja Http będzie wystarczająco dobra przez jakiś czas. Publiczny interfejs API nie jest jeszcze zaplanowany.Uwierzytelnianie REST w PHP (CodeIgniter)

Czy istnieje przykład kodu, jak uzyskać uwierzytelnienie REST, aby po uwierzytelnieniu użytkownik mógł swobodnie wywoływać wszystkie chronione metody.

Odpowiedz

34

Napisałem kontroler REST, aby ułatwić tworzenie aplikacji REST. Możesz przeczytać wszystko na ten temat na NetTuts: Working with RESTful services in CodeIgniter.

+0

To wygląda na bardzo obszerny samouczek, z pewnością go przeczytam. – zidane

+0

Właśnie sprawdziłem tutuł Phila, świetne rzeczy, Phil, bardzo pouczające! – k00k

+0

Zapewniłeś ochronę w REST_Controller! To świetnie, jeszcze raz! – zidane

8

Jeśli używasz protokołu HTTPS, możesz użyć uwierzytelniania podstawowego i jest to bardzo łatwe. Wystarczy dodać następujący kod do kontrolera,

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 

używam mod_php Twoje auth nazwy zmiennych może inna, gdyby przy użyciu innych modułów SAPI.

+0

Tak więc HTTP jest koniecznością do szyfrowania zwykłej nazwy użytkownika i hasła w każdym żądaniu. Dzięki! – zidane

Powiązane problemy