Tengo una aplicación asegurada con un dispositivo y un tiempo de espera de sesión de 30 minutos. Con el dispositivo todo funciona bien para la navegación normal, si el usuario hace clic en un enlace cuando se agota el tiempo de espera, se lo redirecciona a la pantalla de inicio de sesión con un mensaje que dice "Su sesión expiró; vuelva a iniciar sesión para continuar".Mensaje de tiempo de espera de sesión en RoR usando Devise
Sin embargo, tengo ajax en muchos lugares. Si la sesión expira y el usuario realiza una operación Ajax, quiero el mismo comportamiento que el anterior en lugar de fallar silenciosamente con un error 401 en segundo plano.
hasta ahora tengo este código jQuery en cada página para coger 401s y volver a cargar:
$(document).ajaxError(function(e, error) {
switch(error.status) {
case 401: {
// unauthorised (possible timeout)
location.reload();
break;
}
funciona bastante bien, pero no es un problema molesto:
porque la solicitud éxitos ajax idean primera Cuando mi aplicación vuelve a cargar la página me dirigen a la página de inicio de sesión, pero no veo el mensaje de tiempo de espera, veo el mensaje de error "Debes iniciar sesión o registrarte antes de continuar". mensaje.
¿Hay alguna forma de asegurarse de que en el dispositivo de la segunda solicitud aún se muestre el mensaje de tiempo de espera?