はじめに
Sorceryによるfacebookログイン認証をしようとして、盛大なエラー祭りになりました。
誰かのための逆引き辞典になればいいなと思い、記録します。
ざっくりとした流れについては別記事で書いています。
動作環境
ruby 2.6.5
Rails 5.2.3
sorcery 0.14.0
mkcert 1.4.1
エラーとその解決法
ArgumentError in Hogehoge

ArgumentError in BoardsController#index
No association found for name `authentications'. Has it been defined yet?
原因と解決法
Userモデルにおけるaccepts_nested_attributes_for :authentications
は:authentications
とのアソシエーションが存在することが前提となっている。
そのため、has_many :authentications, dependent: :destroy
より下に書く必要がある。
Sorry, something went wrong.

解決法
config.facebook.user_info_path = 'me?fields=email'
config.facebook.access_permissions = %w[email]
ここに不適な値を入れていた場合に起こるので、一旦デフォルトに戻してみる。
URLはブロックされています

URLはブロックされています: リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに追加されていないため、リダイレクトできませんでした。クライアントとウェブOAuthログインをオンにして、すべてのアプリドメインを有効なOAuthリダイレクトURIとして追加してください。
解決法
https://localhost:3000
とhttps://localhost:3000/oauth/callback?provider=facebook
を有効なOAuthリダイレクトURIに登録する。
リダイレクトURIはSorceryのcallback_url
のことです。
接続はプライベートではありません



原因と解決法
リダイレクトURIをhttps://0.0.0.0:3000/oauth/callback?provider=facebook
のままにしているとこのような警告が出る。
mkcertの設定ではhttps://0.0.0.0
は証明書の対象ではないので、HTTPS化していない。
https://localhost:3000/oauth/callback?provider=facebook
に書き換える。
おわりに
と言う名の反省。
最初にいろんな作業を中途半端に進めた結果、エラーが出たときにどこが原因なのかわからなくなってしまいました。
みなさんは、まずはwikiに従って、その後自分で設定を追加していくようにしてください。
くれぐれも、よくわかってもいないのにリファクタリングとか設定の追加をしながら書き進めていかないように。