如何防止在Code igniter中直接链接访问

时间:2011-02-11 12:43:25

标签: codeigniter

如何防止在Code igniter中直接链接访问

E.g。

http://localhost/myapp/admin/displayUser

4 个答案:

答案 0 :(得分:2)

CodeIgniter中没有内置的身份验证库,尽管有很多很好的第三方认证库。我的偏好是Ion Auth - http://benedmunds.com/ion_auth/

但是,如果您只是提到阻止访问某些“私有”控制器方法,则应在方法名称的开头添加下划线 - 这意味着无法通过URL访问它,只能通过其他控制器方法:

function _myprivatemethod() {

    return true;
}

答案 1 :(得分:2)

创建一个名为authenticate.php的库,其中包含以下代码,并在autoload.php中添加该库

class Authenticate
{
    function Authenticate()
    {
        $CI = & get_instance(); 
        if ($CI->session->userdata('USERID') == "")
        {
            $redirectlink = 'contoller function path to your login page';
            redirect($redirectlink);   
            exit;
        }
    }
}

答案 2 :(得分:0)

这对我没有帮助,但可能有助于其他人。

我是通过创建一个检查用户是否已登录的钩子来完成的。如果不是,则将它们重定向到主登录控制器。

if (!$this->session->userdata('logged_in')) {
        redirect('user/login');
}

如果您创建一个扩展CI控制器的Auth_Controller,那么您可以使所有应用程序扩展新的Auth_Controller,以便在用户未登录时始终重定向,而不是扩展CI控制器。

答案 3 :(得分:0)

if (!$this->session->userdata('logged_in')) {
        redirect('user/login');
}

这将完美地工作.. 只记得加载会话库。

$this->load->library('session');