答案 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');