0

im trying to create a new lib which will auto load each time a controller is loaded and authenticate to see if a user is logged in

I’m auto loading the script and its loading fine how-ever it doesn’t seam to authenticate

My Lib

class Authentication {

var $CI;
function Authenication() {

    $this->CI =& get_instance();

    $this->CI->load->library('session');
    $is_logged_in = $this->CI->session->userdata('is_logged_in');
    if(!isset($is_logged_in) || $is_logged_in != true)
    {
        echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';    
        die();        
    }
}

}

Any suggestions are greatly appreciated

1 Answer 1

2

I see what you are trying to do and I would suggest a different approach.

Create MY_Controller and put it in the core folder. Here is a basic representation of what should be in that file.

class Public_Controller extends CI_Controller 
{
    // The data array holds all of the information to be displayed in views
    public $data = array();

    function __construct() 
    {
        parent::__construct();

        // Authentication library handles sessions and authentication, etc...
        $this->load->library('Authentication');

        $this->data['account']['is_logged_in'] = $this->authenication->is_logged_in();
    }
}

class Auth_Controller extends Public_Controller
{   
    function __construct() 
    {
        parent::__construct();

        if ( !$this->data['account']['is_logged_in'] )
        {
            redirect('user/login', 'location');   
        }
    }
}

If you do it this way then for controllers that require authentication you can just extend Auth_Controller otherwise extend Public_Controller.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.