BCrypt::Errors::InvalidHash (invalid hash):が出たときの対処法




 

RailsアプリをHerokuにデプロイしていじっていると、次の「やばそうなエラー」が発生。

BCrypt::Errors::InvalidHash (invalid hash):

ログを確認してみると、user_controller.rbのloginアクションで問題が起きているようでした。

具体的なエラー発生箇所をみると、

が原因とのこと。

 

以前紹介した場合bcryptというユーザーパスワードを暗号化するときに使った記述です。

どうやら、暗号化したパスワードでログインする時に問題が生じているようでした。

以前書いた記事を読み返して、スクリプトにミスがないかチェックしましたが、問題ありません。

「authenticate」のスペルも三度見しましたが間違いありません。

いったいぜんたい、エラーの原因はどこにあるのでしょうか?

 

試しにHerokuのDataclipsでデータベースを確認してみると、

userテーブルに問題発見。

password_digestカラムが空欄のユーザーが数名おったのです。

 

もしかしたら、password_digestカラムが空欄のユーザーがいるから、authenticateメソッドでエラーが起きたのでは・・・・

と思いデータベースをリセットすることに

なぜpassword_digestカラムが空欄のユーザーがいたかというと、途中でpasswordカラムを削除し、password_digestカラムに切り替えたからです。

 

こちらの記事によると、Herokuのデータベースリセット方法は

で良いみたいでした。

実際にやってみると、エラー解決!!!

今回はぼくの推理がヒットしたことになります。

 

Herokuにデプロイしたあとは、データベースをチェックすることも大事です。

そこにエラーの原因が眠っていることもありますから。

BCrypt::Errors::InvalidHash (invalid hash):

でつまずいている方は、データベースの中身を確認しましょう。

 

それでは!

Lin

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。