特定の条件で、ユーザーがfacebookログインできない問題が起きているので調べました。
#条件
・Safari(Mac版、iOS版)
・Cookieの設定が「アクセス中のWebサイトのみ許可」
・facebookにログインしていない
この条件で、facebookログインができない。
現象を確認したSafariのバージョン(Mac 8.0.8、iOS 8.4.1)
#原因
この条件の時、SafariがCookieを送ってこない
Safariのバグ
Safari 8 cookie bug and OAuth redirects
https://github.com/zotonic/zotonic/issues/902
#対策
↑にも書かれているが、reloadをかけるとCookieが来る
あるいは
次のOSのリリースで治るそうなので、9/17のiOS9を待つ
#追記
9/17
iOS9がリリースされ、アップデートしたところ、このバグが修正されていることを確認しました。
#さらに追記
2016/06/20
同じ問題が以下の環境で再発しています。
Mac OSX 10.10.5 (現時点の最新版は10.11.5)
Safari 9.1.1 (現時点で最新版)
少なくとも、この組み合わせのときに、SafariのCookie設定が「アクセス中のWebサイトのみ許可」の場合、クッキーが送られてこない問題が起きることを確認しました。
OS Xのバージョン番号が似ているのと、最新版のMac OSXでは起きないため原因追求にてまどりました。
この問題、Safariの今後のバージョンでも再発しないか心配ですね。
対策として、(iOSではすでにやっていましたが、) Mac版Safariでログインできなかった時のエラーメッセージを、以下のようにしておきました。
アカウントのログインに失敗しました。Safariの「環境設定」>「プライバシー」>「Cookie と Web サイトのデータ」の設定が「常に許可」または「アクセスした Web サイトは許可」になっていることをご確認ください。設定を変更後、Safariを再起動してからログインをお試しください。