「rails devise」の認証処理でログインボタンをクリックすると「Completed 401 Unauthorized」となりログインページにリダイレクトされるという問題があってハマったので、その対応をここにメモします。
rails devise とは
rails で作った web アプリケーションに認証機能を実装できる gem のことです。
問題
ログインページにリダイレクトされた時のエラー
気になる部分その1
CSRFトークンについて注意される。
I, [xxxxxxxx#50] INFO -- : Processing by Devise::SessionsController#create as HTML I, [xxxxxxxx#50] INFO -- : Parameters: {"xxxxxxxxxxxxxx"} W, [xxxxxxxx#50] WARN -- : WARNING: Can't verify CSRF token authenticity
気になる部分その2
認証を試みるが、401 Unauthorized といわれてしまう。
I, [xxxxxxxx#50] INFO -- : Processing by HomesController#new_guest as HTML I, [xxxxxxxx#50] INFO -- : Parameters:{"authenticity_token"=>"XXXXXXXXXXX"} I, [xxxxxxxx#50] INFO -- : Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)
対応
いろいろ調べてみましたが、該当するものがなく途方に暮れていたら、ssl証明書を準備してないというオチでした。。。
コンフィグに以下の部分の設定を編集したらうまくいきました。
(config.force_ssl = false に変更)
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = false
ssl 証明書...オレオレでいいから準備しよ...