Get in touch:
01524 851 877
07718 896 553

Codeigniter REST server with Tank auth

Posted on Apr 18 2014 by Matthew Jakeman

I’ve just had the need within codeigniter to integrate basic auth in Phil Sturgeons REST server¬†with the tank auth authentication library. As it turns out it is quite a trivial task.

In application/libraries/REST_Controller.php find the following function:

protected function _check_login($username = '', $password = NULL)</pre>
 {
 if (empty($username))
 {
 return FALSE;
 }

 $auth_source = strtolower($this->config->item('auth_source'));

if ($auth_source == 'ldap')
 {
 log_message('debug', 'performing LDAP authentication for $username');
 return $this->_perform_ldap_auth($username, $password);
 }

$valid_logins = & $this->config->item('rest_valid_logins');

if ( ! array_key_exists($username, $valid_logins))
 {
 return FALSE;
 }

// If actually NULL (not empty string) then do not check it
 if ($password !== NULL AND $valid_logins[$username] != $password)
 {
 return FALSE;
 }
 return TRUE;
 }

And replace it with the following:

protected function _check_login($username = '', $password = NULL)</pre>
{
 if (empty($username))
 {
 return FALSE;
 }
 return $this->tank_auth->login($username, $password, FALSE, FALSE, TRUE);
 }

If you are not auto loading the tank auth library, be sure to do that in your constructor as well.

Leave a comment