【Rails】BCrypt::Errors::InvalidHash in SessionsController#create が出たときの対処法

今回はRubyのフレームワークであるRailsで発生したエラー内容について、原因と対策を説明します。

エラー内容

Railsアプリ開発でのエラー:BCrypt::Errors::InvalidHash in SessionsController#create

環境

  • Rails 6.0.3
  • Ruby 2.6.6

  • psql (PostgreSQL) 12.2

原因

モデルのハッシュ 化されたパスワードが空白などの異常値となっているユーザーでログインしようとしているからです。

「InvalidHash」の意味はパスワードをハッシュ 化した文字列のことで、要はハッシュ 化されたパスワードが一致しないか、空白で登録されたユーザーモデルですよ、と言っています。

私の場合は、Railsアプリを開発途中にコンソールから登録したユーザーモデルでログインを試みた時に発生しました。

対策

まだ開発途中でしたら、エラーが発生したモデルオブジェクトを一旦削除しましょう。

もしくは、モデルの作成をやり直すなどしてみて下さい。