views:

417

answers:

2

I writing REST API form my web application. Application is written using CodeIgniter framework. Application itself is working fine, but I'm stuck on making REST Authentication. I think that basic Http Authentication will be good enough for some time. Public API is not yet planned.

Is there any code example how to achieve REST Authentication so after user is authenticated he can freely call all protected methods.

+2  A: 

If you use HTTPS, you can use Basic authentication and it's very easy to do. Just add following code to your 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

I use mod_php, your auth variable names maybe different if using other SAPI modules.

ZZ Coder
So HTTP is a must, for encrypting plain user name and password in each request. Thx!
zidane
+2  A: 

I have written up a REST Controller to make your REST applications easier to build. You can read all about it on NetTuts: Working with RESTful services in CodeIgniter.

Phil Sturgeon
This looks like a very comprehensive tutorial, I will read it certainly.
zidane
Just checked out Phil's tut, great stuff Phil, very informative!
k00k
You coverd security in REST_Controller! This is great, thx again!
zidane
I know the article is fairly long but did it rwally take 2 weeks to read? ;-p
Phil Sturgeon