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

Posted

技术标签:

【中文标题】停用的用户重定向到从 ajax 请求登录【英文标题】:Deactivated user redirect to login from ajax request 【发布时间】:2020-05-08 12:28:16 【问题描述】:

谁能告诉我检查用户是否已激活并登录的最佳做法?以及如何从 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;

【问题讨论】:

【参考方案1】:

试试这个

function __construct()

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

【讨论】:

不,它不适合我。它以 302 失败,并且在网络(控制台)中还有第二个登录页面调用。但浏览器不重定向。

以上是关于停用的用户重定向到从 ajax 请求登录的主要内容,如果未能解决你的问题,请参考以下文章

ajax请求session失效重定向到登录页面

ajax请求后台,response.sendRedirect失效,无法重定向

springboot + shiro之登录人数限制登录判断重定向session时间设置

jQuery - 学习笔记 - 全局添加ajax重定向

通过单击链接发送 AJAX 请求而不重定向用户

Ajax 调用中的 PHP 重定向