Safariのクッキー設定が「アクセス中のWebサイトのみ許可」の場合、facebookログインができない


特定の条件で、ユーザーが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を再起動してからログインをお試しください。