ログイン失敗で200 OKが返される

/session.json への POST リクエストで、ペイロードは以下のようになります。

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

ログインが成功すると、ステータスは 200 になり、返される JSON はユーザーデータになります。ログインが失敗すると、返される JSON は以下のようになります。

{"error": "Incorrect username, email or password"}

しかし、ステータスは 200 のままです。これはバグでしょうか?失敗を示すために、ログイン失敗時のステータスは 400 以上であるべきでしょうか?

「いいね!」 1

:thinking:

おそらく。私は 401 を選択するでしょう。

しかし、これらは HTTP クライアント接続の HTTP ステータス コードでもあります。このニュアンスが、200 を返すような決定につながるのだと思います(「POST は成功しました。ここにフィードバックがあります」)。

自分にはよくわかりません。:slight_smile:

「いいね!」 1
「いいね!」 1

ログイン失敗で200を返すのは、ログインが「成功裏に」失敗したという意味だと理解できます。それは「失敗裏に」失敗したのではなく。:upside_down_face:

「いいね!」 4

これは、ログインしようとしているボットを混乱させる「機能」でもあることを念頭に置いてください。

これを変更することについては賛否両論あります。たぶん…

「いいね!」 6

変更を求めているのではありません。求めていたのは、変更、またはその動作が意図的であることの確認でした。今、それが得られました。ありがとうございます!

「いいね!」 3