¿Existen estándares para usar encabezados HTTP para las respuestas de éxito/fracaso de inicio de sesión?¿Cabeceras HTTP adecuadas para las respuestas de éxito/fracaso de inicio de sesión?
Respuesta
El encabezado que envía el servidor es el código de estado 200 OK o 401 denegado en caso de éxito o error.
Ver http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Sección 10.4.2 401 no autorizado para esto.
Al enviar el 401, el servidor debe enviar un
WWW-Authenticate = "WWW-Authenticate" ":" 1 # desafío
para indicar qué esquema se debe utilizar para la autenticación.
Ver http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html Sección 14.47 WWW-Authenticate para esto.
Sólo hay HTTP/1.0 401 Unauthorized
.
Pero recientemente desarrollé este "patrón de autenticación": la primera vez que visita la página obtiene 401
y la pantalla de inicio de sesión. Tan pronto como ingrese los datos de inicio de sesión correctos, recibirá 200
. Cuando su sesión expire o haga clic en cerrar sesión recibirá 401
y la pantalla de inicio de sesión nuevamente. La pantalla de inicio de sesión siempre es 401
, cada dos páginas 200
.
Depende de lo que quiere decir con "inicio de sesión" y quizás también de cómo el servidor maneja el inicio/cierre de sesión/autorización.
Normalmente, la expresión 'para iniciar sesión' está relacionada con las sesiones. Uno 'inicia sesión', hace lo que necesita hacerse y luego 'cierra sesión'. El servidor almacena la información de la sesión y envía la identificación de la sesión en un cooki al cliente, que luego envía la cookie para informar al servidor que está en curso una sesión. Dentro de la sesión, las variables pueden cambiar y su estado es persistente entre las llamadas del cliente.
Intuitivamente, parece natural que haya un tipo de respuesta 'Autorizada' cuando inicie una sesión, junto con la respuesta 'No autorizado (401)'.
Sin embargo, HTTP es un protocolo sin estado. No sabe acerca de los estados, solo acerca de si la solicitud está autorizada o no. Es por eso que existe el estado 401 pero no un código de estado 'autorizado' específico (ya que si una solicitud no está autorizada, está implícitamente autorizada).
Para tener la sensación de trabajar en una sesión en el nivel HTTP (sin utilizar una construcción como session_start() de PHP), las credenciales de autorización deben enviarse con cada solicitud. Esto es lo que sucede cuando uno usa el archivo .htaccess para proteger una carpeta, por ejemplo. Después de proporcionar al diálogo de contraseña el nombre de usuario y la contraseña, estos se envían posteriormente cada vez que hay un acceso dentro del dominio de autorización. Existe la ilusión de una "sesión" pero, en realidad, el nombre de usuario y la contraseña se envían en cada solicitud.
- 1. Sintaxis de las cabeceras HTTP de estado
- 2. Usando HTTP POST para formularios de inicio de sesión
- 3. Android HTTP preguntas de inicio de sesión
- 4. Cabeceras HTTP para longitud desconocida de contenido
- 5. AngularJS Interceptar todas las respuestas $ http JSON
- 6. Asignación de solicitudes HTTP a respuestas HTTP
- 7. Leer mensaje cabeceras http
- 8. Cabeceras HTTP de solicitud personalizada en HTML
- 9. Las variables de sesión se pueden engañar (inicio de sesión)?
- 10. manejo automático de las respuestas gzip http en Android
- 11. render_to_response con cabeceras de respuesta HTTP
- 12. ¿para qué son adecuadas las tuplas?
- 13. Herramientas HTTP para el análisis y captura de solicitudes/respuestas
- 14. ¿Las pruebas unitarias son adecuadas para el desarrollo de BPM?
- 15. Inicio de sesión de sesión frente a la autenticación HTTP. Ventajas Desventajas
- 16. Transmitiendo respuestas HTTP con NodeJS
- 17. Práctica recomendada: cómo asegurar las solicitudes Http (por ejemplo, inicio de sesión) desde una aplicación móvil
- 18. ¿Corregir el código de estado HTTP para el formulario de inicio de sesión?
- 19. HTTP Spec: cabeceras Autorización proxy y autorización
- 20. Django: HTTPS solo para la página de inicio de sesión?
- 21. lectura cabeceras HTTP entrantes con Node.js
- 22. Cabeceras HTTP para el almacenamiento en caché más permanente posible
- 23. ¿Cómo se procesan las respuestas http de varias partes en Ruby Net: HTTP?
- 24. Script de GreaseMonkey para el inicio de sesión automático con autenticación HTTP
- 25. Corregir el verbo http para usar en la API de inicio de sesión
- 26. trabajo PHP CRON, cabeceras HTTP no de salida
- 27. Cómo usar las cuentas de Google como inicio de sesión
- 28. Cookies de inicio de sesión/sesión, Ajax y seguridad
- 29. Diseño de clases adecuadas
- 30. ¿Cómo atrapar las fallas de inicio de sesión con PySVN?
Te estoy dando un voto positivo, una gran pregunta, también quiero saber la respuesta. –