Codeigniter 3.0安全方法

时间:2015-07-14 12:26:11

标签: codeigniter security codeigniter-3

我的疑问是:有没有办法在codeigniter中做这样的事情

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Users extends CI_Controller {

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

  //This method only user with admin permission can access this
  public function onlyAdmin(){
  }
  //This method all user  can access this
  public function allUser(){
  }
}

类似或更具动感的东西。

Thanx适合你的时间。

2 个答案:

答案 0 :(得分:0)

最简单的方法是使用身份验证库,因为您显然需要在应用中的某个位置进行身份验证。 CodeIgniter有很多可用的,在不同的情况下都有自己的优点和缺点。

请查看this post,了解一些情况,并查看是否有适合您的需求。

您可能想要一个支持不同用户组的用户。这样,当用户登陆您的页面时,您只需检查他们的组(管理员/用户/未登录),然后指导他们或相应地呈现页面。为此,您可以使用case语句为每个组运行不同的函数。这些函数应该为您提供每个用户组的特定自定义所需的页面。

答案 1 :(得分:0)

有很多方法可以做到这一点,但基本的一个是Phill Sturgeon's suggestion关于为任何使用级别的应用程序创建核心类,或者在{{1}中创建类似这样的内容(MY_Controller类目录:

APPPATH . 'core'

在控制器中,你可以制作扩展适当核心类的文件/类:

class MY_Controller extends CI_Controller // prefix MY_ can be found in APPPATH . 'config/config.php' or you can set your own
{
    public __construct()
    {
        parent::__construct();
    }
}

class Admin_controller extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
        //pseudo code
        if ($this->session->userdata('level') != 'admin')
        {
            exit("You need admin's privileges to get in here.");
        }
    }
}

class Public_controller extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

或类似的东西:

class Blog extends Public_controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

另外,您也可以查看this link