Inicio de sesión fallido devuelve 200 Ok

Estoy haciendo un POST a /session.json con la carga útil

{
  "login": "skroob",
  "password": "12345",
  "authenticity_token": "..."
}

Cuando el inicio de sesión tiene éxito, el estado es 200 y el JSON devuelto son un montón de datos de usuario. Cuando el inicio de sesión falla, el JSON devuelto se ve así

{"error": "Nombre de usuario, correo electrónico o contraseña incorrectos"}

pero el estado sigue siendo 200. ¿Es esto un error? ¿Debería el estado para un inicio de sesión fallido ser algo >= 400, para indicar un fallo?

1 me gusta

:thinking:

Quizás. Probablemente optaría por 401.

Pero esos también son códigos de estado HTTP, para conexiones de cliente HTTP; Creo que ese matiz lleva a decisiones como devolver un 200 (“tu POST fue exitoso, aquí está la retroalimentación”).

No estoy seguro, yo mismo. :slight_smile:

1 me gusta
1 me gusta

Puedo ver la lógica de un 200 en un inicio de sesión fallido, lo que significa que tu inicio de sesión falló exitosamente, en lugar de fallar sin éxito. :upside_down_face:

4 Me gusta

Ten en cuenta que esto también es una especie de “característica” en el sentido de que confunde a los bots que intentan iniciar sesión.

Estoy indeciso sobre cambiar esto. Quizás…

6 Me gusta

No estoy pidiendo un cambio. Lo que quería era una disyuntiva: un cambio O una confirmación de que el comportamiento es intencional, lo cual ahora tengo. ¡Gracias!

3 Me gusta