Cómo cerrar la sesión cuando se usa (y .htpasswd) autenticación .htaccess? [duplicar]
-
18-09-2019 - |
Pregunta
Duplicar posible:
HTTP cierre de sesión de autenticación a través de PHP
Hola
Tengo una cierta funcionalidad en mi sitio web protegido mediante .htaccess
y .htpasswd
.
Cuando los usuarios intentan acceder a esto, ellos obtienen pronta a entrar en detalles. Entran en sus detalles y entrar y pueden ver cosas etc. Todo funciona bien.
Mi pregunta es ¿cómo puedo crear una funcionalidad logout
para este tipo de autenticación. Sé que pueden cerrar la ventana del navegador a "Salir". Pero esto no es lo ideal. ¿Qué le sugeriría a mí?
Gracias.
Solución
Los navegadores por lo general no son compatibles con este tema, consulte ¿Cómo entro a cabo?
Dado que los navegadores empezaron la implementación de la autenticación básica, administradores de sitios web han querido saber cómo hacer que la sesión del usuario. Desde el navegador almacena en caché el nombre de usuario y la contraseña con la autenticación reino, como se describe anteriormente en este tutorial, esto no es una función de la configuración del servidor, pero es una cuestión de conseguir que el navegador olvidar la información de credenciales, por lo que la próxima vez que el recurso es solicitada, el nombre de usuario y contraseña debe ser suministrada de nuevo. Existen numerosas situaciones en las que esto es deseable, tal como cuando se utiliza una navegador en un lugar público, y no que desean salir del navegador conectado en, por lo que la siguiente persona puede obtener en su cuenta bancaria.
Sin embargo, aunque esto es quizás el pregunta más frecuente acerca la autenticación básica, hasta el momento ninguno de los principales fabricantes de navegadores tienen visto esto como una característica deseable poner en sus productos.
En consecuencia, la respuesta a esta pregunta es, no se puede. Lo sentimos.
Hay extensiones del navegador que le permiten borrar la autenticación HTTP para un sitio.
Para Firefox en el WebDeveloper extensión (que es uno de mis extensiones favourtie de todos modos) ofrece esta característica.
El menú de esto es Miscellaneous/Clear Private Data/HTTP Authentication
.
Otros consejos
Probado en Firefox y Chrome . Lo que puede hacer es enviar al usuario http: // cierre de sesión: logout@example.com . Esto reemplazará su actual nombre de usuario / contraseña con cierre de sesión / cierre de sesión (que podría ser cualquier usuario combinación no válida / pass) y ya que ahora tienen el mal nombre de usuario / contraseña, tendrá que volver a iniciar sesión para acceder al sitio.
En la ópera esto no funciona, porque puede tener varios nombres de usuario / contraseñas al mismo tiempo. No funcionó en IE tampoco, porque el IE no parece apoyar http: // nombre de usuario: password@example.com URLs.
Me encontré con este problema hace varios años. Es muy frustrante para descubrir que hay un problema todo el mundo tiene y nadie parece querer resolver de una manera general.
Como se señaló en funcionalidad Salir inadecuada en la autenticación HTTP Creo que la respuesta es cambiar el RFC para permitir que los tiempos de espera y apoyar un botón de cerrar la sesión. sugerencia adicional del autor de que el servidor pueda enviar un "desconectarse" de cabecera sería realmente eliminar la necesidad de cualquier Soporte de agente de usuario cliente, ya que los sitios web simplemente podrían incluir un enlace en una página web a una URL que Devuelve el código y / o el encabezado de respuesta necesaria para invalidar la sesión actual.
Es una especie de posible cerrar la sesión. Debe implementar la página de cierre de sesión, que devolverá HTTP 401, hasta que el usuario introduzca información de acceso BAD, y luego redirigir a otro lugar. El navegador recuerda la última información de acceso aceptado, y por lo tanto anula inicio de sesión correcto.
Pero esto es algo inservible, cos que necesita la cooperación del usuario.