今回はRubyのフレームワークであるRailsで発生したエラー内容について、原因と対策を説明します。
エラー内容
Railsアプリ開発でのエラー:BCrypt::Errors::InvalidHash in SessionsController#create
環境
- Rails 6.0.3
-
Ruby 2.6.6
-
psql (PostgreSQL) 12.2
原因
モデルのハッシュ 化されたパスワードが空白などの異常値となっているユーザーでログインしようとしているからです。
「InvalidHash」の意味はパスワードをハッシュ 化した文字列のことで、要はハッシュ 化されたパスワードが一致しないか、空白で登録されたユーザーモデルですよ、と言っています。
私の場合は、Railsアプリを開発途中にコンソールから登録したユーザーモデルでログインを試みた時に発生しました。
対策
まだ開発途中でしたら、エラーが発生したモデルオブジェクトを一旦削除しましょう。
もしくは、モデルの作成をやり直すなどしてみて下さい。