はじめに
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.
Sorry, something went wrong.
we’re working on getting this fixed as soon as we can.
解決法
|
|
ここに不適な値を入れていた場合に起こるので、一旦デフォルトに戻してみる。
URLはブロックされています
URLはブロックされています: リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに追加されていないため、リダイレクトできませんでした。クライアントとウェブOAuthログインをオンにして、すべてのアプリドメインを有効なOAuthリダイレクトURIとして追加してください。
解決法
https://localhost:3000
とhttps://localhost:3000/oauth/callback?provider=facebook
を有効なOAuthリダイレクトURIに登録する。
リダイレクトURIはSorceryのcallback_url
のことです。
接続はプライベートではありません
「OK」をクリックすると
原因と解決法
リダイレクト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に従って、その後自分で設定を追加していくようにしてください。
くれぐれも、よくわかってもいないのにリファクタリングとか設定の追加をしながら書き進めていかないように。