谁能告诉我检查用户是否已激活并登录的最佳实践?我该如何处理ajax请求?
如果用户被停用,则通过控制器上的 ajax 请求重定向到登录页面。
我正在创建一个辅助函数并在构造函数中调用它。
但是如果用户被停用并返回“状态代码:303 查看其他”,它不会重定向到登录
在控制器中:
function __construct()
{
parent::__construct();
$this->load->helper('auth_helper');
if (!auth())
{
redirect('login/login_panel');
}
}
辅助功能:
function auth()
{
$CI =& get_instance();
$user = true;
if ($CI->session->userdata('user_id')) {
$CI->load->model('users_model');
$active = $CI->users_model->getActive($CI->session->userdata('user_id'));
if ($active->active == '0' || $active->active == null) {
$user = false;
}
} else {
$user = false;
}
return $user;
}
试试这个
function __construct()
{
parent::__construct();
$this->load->helper('auth_helper');
if (!auth())
{
header('Location: login/login_panel');
exit();
}
}
我面临同样的问题,我执行以下步骤:
1-创建一个控制器并在index()函数中检查用户是否已登录。
2-在应用程序的页眉或页脚或侧边栏(任何静态视图文件)中每 5 秒发出一次 ajax 请求,并检查 index() 函数是否返回 true
3-如果返回值为 false,则重定向到登录页面,
class CheckLogin extends CI_Controller{
function index(){
if(isUserLogged()){
return true;
} else{ return false; }
}
}
前面:
$ajax({
url: 'CheckLogin',
success: function (data){
if(!data /* which means data is false*/)
{ location.href = 'login.php'; }
}
});