我试图创建一个新的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();
}
}
}
非常感谢任何建议
答案 0 :(得分:2)
我看到你想要做什么,我建议采用不同的方法。
创建MY_Controller并将其放在核心文件夹中。以下是该文件中应包含的内容的基本表示。
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');
}
}
}
如果你这样做,那么对于需要身份验证的控制器,你可以扩展Auth_Controller,否则扩展Public_Controller。