LoginSignup
3
1

More than 1 year has passed since last update.

【Rails6】deviseでログイン時、「Completed 401 Unauthorized」となり、ログインできない時の対処法(備忘録)

Posted at

はじめに

deiviseを使用していて、ログインできない現状に悩まされたので、備忘録として残します。

開発環境

macOS Big Sur 11.3.1
Rails 2.7.2
PostgreSQL 13.2

現状

アカウント登録し、ログアウト後にログインすると、「名前、Eメールまたはパスワードが違います。」と表示され、ログインできない。
ログを確認すると、Completed 401 Unauthorized認証に失敗していることが、原因とのこと。

今回の原因

config/initializers/devise.rb
config.authentication_keys = [:name, :email]

「ログイン時に入力された name と email の両方が一致して,かつパスワードが正しくないとログインできない」という設定をしていたのが、原因でした。

対処法

config/initializers/devise.rb
config.authentication_keys = [:email]

:nameを削除して、サーバーを立ち上げて確認すると、出来ました!

スクリーンショット 2021-05-12 16.48.07.png

学び

今回、メンターさんに色々アドバイス頂きました!
・必ずログを確認すること(ここ重要!)

認証が失敗している場合は、
・原因が色々考えられるので、1つづ潰していく必要があること
・問題の切り分け方
 ・新しくユーザーを作成して、ログイン情報が確実に間違っていないことを確認
  出来た  → 解決!
  出来ない → view、もしくはapplication_contorollerに原因がありそう
 ・application_contorolerに追記した部分を見直す
  解決 or 未解決
 ・viewに追記した部分を確認
  解決 or 未解決

現役のエンジニアの方々は、このように問題を切り分けて考えていることがわかり、非常に勉強になりました。エラー続きですが、エラーがないとこのような気付きもないので、ラッキーと思うようにしています:relaxed:
同じようなエラーで躓いている方々へ、参考になると幸いです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1