停用的用户重定向到从ajax请求登录

问题描述 投票:0回答:2

谁能告诉我检查用户是否已激活并登录的最佳实践?我该如何处理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;
}
php jquery ajax codeigniter-3
2个回答
0
投票

试试这个

function __construct()
{
    parent::__construct();
    $this->load->helper('auth_helper');
    if (!auth())
    {
        header('Location: login/login_panel');
        exit();
    }
}

0
投票

我面临同样的问题,我执行以下步骤:

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'; }
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.