Deshabilitar el botón ‘Atrás’ del navegador después de cerrar sesión?

Estoy usando python con django. Quiero redirigir a los usuarios a la página de inicio de sesión cuando hace clic en el botón de regreso después de cerrar la sesión. ¿Cómo lograr esto? donde escribir el codigo

Para comprobar si django admin maneja esto … inicié sesión en django admin..logged y luego presione el botón Atrás y puedo ver la página anterior. ¿Por qué django admin no maneja esto?

Este es el ccode para cerrar sesión en django admin:

def logout(request): """ Removes the authenticated user's ID from the request and flushes their session data. """ request.session.flush() if hasattr(request, 'user'): from django.contrib.auth.models import AnonymousUser request.user = AnonymousUser() 

Finalmente encontré la solución:

 from django.views.decorators.cache import cache_control @cache_control(no_cache=True, must_revalidate=True) def func() #some code return 

Esto obligará al navegador a realizar solicitud al servidor.

Es posible que necesite usar @cache_control (no_cache = True, must_revalidate = True, no_store = True) en Chrome para detener completamente la visualización del botón Atrás.

La clave es no_store para Chrome como encontré aquí 1

La razón por la que puede acceder a la página de administración, después de cerrar la sesión y devolverle el golpe, es que no la página real. Más bien, usted ve una copia del mismo que está en el caché de su navegador.

Prueba esto:

  1. ir a cualquier página de administrador
  2. haga clic en “Cerrar sesión”
  3. pulsa el botón “Atrás” en tu navegador
  4. presione F5 o haga clic en “Actualizar” en su navegador.

Ahora será redirigido a la página de inicio de sesión del administrador de back-end.

+1 para la respuesta de Digital Cake! Esto solucionó el problema de realizar copias de seguridad en páginas almacenadas en caché después de cerrar sesión en FireFox también. Lo intenté:

@cache_control (no_cache = True, must_revalidate = True)

en mis puntos de vista sin suerte. Por Digital Cake, intentado:

@cache_control (no_cache = True, must_revalidate = True, no_store = True)

y ahora Firefox vuelve a la pantalla de inicio de sesión.

Sé que es una pregunta antigua, pero la respuesta aceptada no funcionó para mí. Me enfrenté al mismo problema (usando django 1.8 y Chrome)

Finalmente, encontré la solución de los documentos (django 1.7 o posterior). Esto funcionará seguro.

Solo ve el código de abajo

 from django.contrib.auth.decorators import login_required @login_required(login_url='/login/') def myview(request): return HttpResponse(render(request,'path_to_your_view.html')) 

@login_required decorador @login_required se utiliza para manejar el problema. Puedes consultar más en el doc.

Depende, qué tipo de sistema de autenticación está utilizando. Si está utilizando algún tipo de implemento propio, puede escribir su propia clase de Middleware que redirige a los usuarios no autenticados a la página de inicio de sesión.

Si está utilizando alguna biblioteca, verifique en sus documentos cómo maneja la solicitud a páginas seguras de usuarios no autenticados.