如何检测FOSUserBundle重定向到登录页面

时间:2018-09-21 23:55:22

标签: php fosuserbundle symfony4

首先,我将与ASP.NET安全系统进行比较。

当我在ASP.NET中使用MVC开发时,我会使用它提供的安全系统。当会话到期并且框架重定向到登录页面时,在重定向之前,它会发送一个禁止的错误(401),该错误封装在XHR对象中。然后,我使用以下Javascript方法对其进行验证并向用户显示一条消息,然后重新加载页面,以便该框架自动重定向到登录页面:

function checkUserSession(xhr) {
    // Si es 401, es porque se debe redireccionar al login
    //alert(JSON.stringify(xhr));
    if (xhr.getResponseHeader("X-Responded-JSON") != null
            && JSON.parse(xhr.getResponseHeader("X-Responded-JSON")).status == "401")
    {
        BootstrapDialog.alert({
            type: BootstrapDialog.TYPE_WARNING,
            title: 'Sesión Expirada',
            message: 'La sesión de usuario caducó.<br /><br />Presione Aceptar para autenticarse y posteriormente vuelva a realizar la acción.',
            callback: function (result) {
                location.reload();
            }
        });
    }
}

当我使用Ajax调用动作时,我会进行验证。例如,调用该操作以填充网格。如果我不进行该验证,则会在内部调用登录页面,因此网格不会执行任何操作,并且用户永远不会收到有关会话已过期的通知。

好吧...我试图使用Symposony 4中的FOSUserBundle完成相同的任务。但是,当我使用Ajax调用操作时,会话已经过期。框架只是重定向到登录页面,导致302类型的响应,这实际上不是错误,因此我不知道如何捕获它。

您对此有何看法?我需要在数据表中以及加载引导模态对话框时检测到这种情况,因为我是使用ajax加载内容的。

对于数据表,当从ajax返回数据时会引发一个事件...但是我不能使用该事件,因为在实际执行重定向到登录页面时会调用该事件....所以我不知道如何检测禁止或重定向条件。

FOSUserBundle是否允许针对这种情况配置响应?

0 个答案:

没有答案