HTTP define el estado 401 Unauthorized para la autenticación faltante, pero este estado solo se aplica a la autenticación HTTP. ¿Qué estado debo devolver con un sistema basado en cookies de sesión, cuando ocurre una solicitud no autorizada?Código de estado HTTP para la autenticación faltante
Respuesta
Formalmente, 403 Prohibido es la respuesta correcta. Se define como
La autorización no sirve de ayuda y la solicitud NO DEBE repetirse.
La parte confusa puede ser "Autorización no ayudará", pero que en realidad significa "autenticación HTTP" (WWW-Authenticate)
403 Creo que es técnicamente correcto (y probablemente más eficaz si está implementando una API/protocolo personalizado).
401 no es apropiado, ya que se refiere a la autorización con un encabezado WWW-Authenticate, que no es una cookie de sesión.
Si se trata de una página web orientada al público en el que está tratando de negar el acceso basado en una cookie de sesión, 200 con un órgano apropiado para indicar que registro en el que se necesita o una redirección temporal 302 a una página de ingreso es a menudo mejor.
Esto podría ser solucionable si realmente definiera un esquema de autenticación HTTP basado en cookies. –
@Julian Reschke - Por definición, las cookies no tienen mucho que ver con la autenticación; principalmente, están agregando cierta cantidad de "estado" a un protocolo "sin estado", HTTP. Las cookies en sí mismas no autentican nada. Simplemente son información que se envía a un servidor que ese servidor le pidió previamente al navegador que guardara. Sí, esa información se puede usar para determinar si previamente se autenticó como usuario (normalmente a través de HTTP POST/GET). También se puede usar simplemente para indicar si ha visto un anuncio en particular anteriormente o visitado ese sitio antes y cuándo, etc. – userx
Puede hacer uso de una condición de prueba y transmitir el código de error
: 401,1 al inicio de sesión falló. El intento de inicio de sesión no es exitoso, probablemente debido a un nombre de usuario o contraseña que no es válido.
que se utiliza específicamente para la contraseña incorrecta o el nombre de usuario y la contraseña no coincidentes. Espero que esto te ayude.
- 1. Código de estado HTTP para datos incorrectos
- 2. Código JavaScript puro para autenticación básica HTTP?
- 3. 502 código de estado HTTP
- 4. System.Net.WebException Código de estado HTTP
- 5. Analizando el código de estado HTTP
- 6. código de estado HTTP 400 vs 412
- 7. ¿Código de estado de Http con libcurl?
- 8. Python urllib2 URLError Código de estado HTTP.
- 9. Código de estado HTTP para "éxito con errores"?
- 10. ¿Corregir el código de estado HTTP para el formulario de inicio de sesión?
- 11. cliente de prueba Django http autenticación básica para la solicitud
- 12. Obtener la descripción del código de estado HTTP
- 13. RCurl: Autenticación HTTP cuando el sitio responde con código HTTP 401 sin autenticación WWW
- 14. caché de autenticación HTTP
- 15. HTTP de autenticación básica para Carpincho
- 16. ¿Puedo usar NSURLCredentialStorage para autenticación básica HTTP?
- 17. Manejo del código de estado de IIS7 y HTTP
- 18. viene el nombre de un código de estado HTTP importa
- 19. Devuelve el código de estado HTTP 201 en el matraz
- 20. Webpy: cómo configurar el código de estado http a 300
- 21. ¿Cómo se especifica un código de estado HTTP en Cakephp?
- 22. HTTP de autenticación de iPhone
- 23. Comprobando el código de estado HTTP en Selenium
- 24. controlador de éxito para la función $ .ajax con un código de estado http no estándar
- 25. Código de estado HTTP para la base de datos ha caído
- 26. ¿Biblioteca de Java para mapear el código de estado HTTP a la descripción?
- 27. ¿Cuál es la estructura de respuesta exacta para el código de estado HTTP 300 (opciones múltiples)?
- 28. Código de estado HTTP específico de retorno Asp Classic
- 29. ¿Cuál es el código de estado HTTP más apropiado para devolver si falta un encabezado requerido?
- 30. ¿Por qué display_errors cambia el código de estado HTTP?
Esto significa que el usuario no debe volver a intentar la solicitud. Esto no es apropiado –
Técnicamente, creo que tienes razón. En el caso de la implementación práctica, creo que un 200 con un mensaje de error basado en HTML o 302 redireccionando a otra página donde puede ocurrir el inicio de sesión basado en sesión es más común (y quizás podría decirse que más útil). – userx
@Erik Philips - Esto es correcto, la solicitud no debería ser. Una vez que los encabezados de la solicitud se modifican para tener una cookie de sesión correcta (de ahí que no sea la MISMA solicitud), se otorgará acceso. – userx