【发布时间】:2018-12-29 09:45:53
【问题描述】:
我正在构建一个网站,其中有一个管理员和用户页面。我有一个问题,即使我以用户身份登录,我也可以通过 URL 访问管理页面。我在登录页面进行了验证检查,但是如果我已经以用户或管理员身份登录,我可以访问所有页面。我只想将页面限制为他们的角色。
这是我的控制器
class login extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper('url','html');
$this->load->model('login_model');
}
public function index(){
$this->load->view('login');
}
public function verify_login()
{
$data = $this->login_model->verify_login();
if ($data) {
$userdata = array('id' => $data[0]['user_id'] , 'name' => $data[0]['full_name'], 'type' => $data[0]['user_type'] );
$this->session->set_userdata('login_info',$userdata);
if($userdata['type'] == 0) {
header("Location: ".base_url()."home");
}
else {
header("Location: ".base_url()."reports_controller");
}
}
else{
header("Location: ".base_url()."login");
}
}
public function logout(){
$this->session->sess_destroy('login_info');
header("Location: ".base_url()."login");
}
}
【问题讨论】:
-
你忘了附上你的代码
-
根据用户类型创建角色,并在 MY_controller 上检查角色并将此 My_controller 扩展至其他控制器。或者您可以简单地检查 user_type 并限制那里的访问。
-
您是否检查过其他控制器上的会话 login_info,您希望在其中限制用户类型?
-
是的,我每个控制器都检查了我的登录信息
-
را 会议 خو استفاده کرده ام
标签: php codeigniter authentication authorization