答案 0 :(得分:1)
尝试使用Codeigniter的会话功能来验证用户及其角色(例如“管理员”,“客户”等)
然后向每个控制器添加这样的构造函数(这只是一个示例)
class Admin_only extends CI_Controller {
public function __construct()
{
parent::__construct();
if( !isset($this->session->userdata['logged_in']) || $this->session->userdata['logged_in']['user_type'] != 'administrator' )
{
// you're not welcome here
redirect('welcome/access_error');
}
}
每次访问控制器中的任何内容时,都会运行__construct()。
看看我的示例中的方法(有更简洁的方法,但这肯定会起作用),我一直在检查用户是否已登录以及用户是否是管理员(实际上我正在检查相反的...已登录)还是不是管理员,但从逻辑上讲这几乎是相同的),如果检查失败,则会将用户重定向到控制器之外。
答案 1 :(得分:1)
除了Admin_controller(用于分离的安全规则)之外,为了更好地进行组织,最好使用这样的扩展名:
HMVC:https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src
有了这个,您将能够看到这种类型的os结构:
URLs
http://awesome.site/public_controller
http://awesome.site/*module_name*/*controller_inside_module*
http://awesome.site/admin/login