ドットインストールの学習動画を見ながら、Facebookでログインするページを作成します。”Facebook Login”というボタンを押せば、Facebookの認証画面に飛ぶことになっています。
ですが、ボタンを押してもGoogle Chromeから、”このウェブページにはリダイレクト ループが含まれています“と怒られてしまいます。ブラウザをSafariに変えてボタンを押しても、やはりリダイレクトループが発生します。
ちなみに開発環境を、ローカル開発環境(Vagrant)にしても、本番環境(さくらのクラウド)にしても、同じようにリダイレクトループが発生します。
ブラウザ側の問題
Chromeで表示されるエラーページの”詳細”をクリックすると、問題解決のためのアドバイスをいくつか提案されます。まずCookieの問題について。
1.サイトのCookieを削除する 2.サードパーティのCookieを許可する
Chromeヘルプを見ながら、マニュアルどおりにやってみましたがダメでした。これらの方法では解決しません。
サーバー側の問題
エラーページの”詳細”には、もうひとつアドバイスが書かれています。
3.サーバー側の設定上の問題を解決する
ここでいう”サーバー”とは、Facebookのことでしょうか。”Facebook”,”リダイレクトループ”というキーワードを使ってぐぐってみると、今回のトラブルに関連しそうな記事がいくつか出てきます。
- FacebookアプリをPHPで使用していてこのウェブページにはリダイレクト ループが含まれていますと表示される | Pleasurable
- Facebookアプリでログイン後にリダイレクトループする – ええやんブログ
- FacebookSDK(CakePHP)でURLをSSLにするとエラー(8187)|teratail
サンドボックスモードが無効になっていたり、”www”や”https”など原因が考えられるようです。これらのうちサンドボックスモードについては、無効を有効に切り替えてみましたが、リダイレクトループは直りませんでした。
さらに、”www”や”https”の問題については、記事を読んでもよく分かりません。そもそもドットインストールの動画でも、これらの問題については一切触れられていませんしね。うーん、困った(汗
〔参考サイト〕