Mobile - Facebook ログイン後のログアウトが機能しない

皆さん、こんにちは。問題に直面しています。Facebook ログイン後にログアウトボタンをクリックすると、ページがフリーズしてしまいます。インデックスページへのリダイレクトが行われません。ただし、ページを再読み込みすると、セッションが破棄されたことを示してインデックスページにリダイレクトされます。これは、ログアウトボタンクリック後のリダイレクト処理に何らかのエラーが発生していることを示しています。この問題の解決策をご存知の方がいらっしゃいましたら、ご教示いただけますでしょうか。

これはモバイルデバイスで発生しており、Web 上では正常に動作しています。

よろしくお願いいたします。

Meta で再現できますか?

https://try.discourse.org/ で問題を再現できました。

添付ビデオ

これの再現はできますか、@tshenry

はい、iOS Safari で再現可能です。

実際のエラーは何ですか、@tshenry

ログアウトは成功していますが、リフレッシュやリダイレクトが正常に行われていません。

エラーポップアップは表示されず、/logsにも何も表示されません(詳細ログを有効にしても同様です)。最初のログアウト試行時にはブラウザコンソールに何も表示されませんが、その後のログアウト試行(技術的にはすでにログアウトしている状態での試行)でエラーが発生します。

これは、私が先日 Apple に報告したバグと非常に似ています。

Try で same site cookiesDisabled に設定した後に、再現を試みてください。設定変更が有効になるには、ログアウトして再度ログインする必要があります。

はい、「SameSite Cookie」を無効にしても、問題は依然として発生しています。

この問題が meta 環境でも再現するか確認いただけますか?また、モバイル端末でのみ発生することを確認できますか?デスクトップで URL に ?mobile_view=1 を追加して強制的にモバイル表示にした場合にも同様の現象が起きるでしょうか?

Meta では確認していません。https://try.discourse.org/ のみ確認しました。はい、これはモバイルの iOS Safari でのみ発生し、デスクトップで URL に ?mobile_view=1 を追加してモバイルビューを強制した場合は発生しません。@tshenry さん、私の観察結果を確認してください。

確認しました:

  • デスクトップ版 Safari でモバイル表示を強制した場合、ログアウト時のリダイレクトは正常に動作します。
  • この問題は、Meta 上のモバイル Safari で再現可能です。
  • 問題は、ログインのたびに最初のランディングページからログアウトしようとした場合にのみ発生しているようです。
    • ログイン後、トピックに入り、ログアウトを試みると、ログアウト時のリダイレクトは正常に動作します。
    • ログイン後、トピックに入り、戻るボタンを押してからログアウトを試みると、ログアウト時のリダイレクトは動作しません
    • ログイン後、トピックに入り、ホームロゴをクリックしてからログアウトを試みると、ログアウト時のリダイレクトは正常に動作します。

@Falco、おっしゃる通りでした!Try で試してみたところ、この問題が解決しました。

ああ、そうなると思って賭けておけばよかったのに :facepalm:

このバグのため [https://rocky-fjord-97287.herokuapp.com/] にて Discourse のオフライン機能を無効にせざるを得ませんでした。機能自体は正常に動作するのですが、デフォルトで厳格なクッキー設定になっているため、Safari でバグが引き起こされてしまうのです。

@tshenry、「SameSite クッキー」を無効にしても、まだ問題が発生しています。ただ、初めて試したときはリダイレクトが正常に動作しました。しかし、2 回目に試したときは動作しませんでした。

また、Try でも確認しましたが、2 回目は動作しませんでした。

なるほど、おっしゃる通りですね…最初に動作したのを見て嬉しくなり、その後の試行を確認し忘れていたようです :pensive:

追加のメモがあります。「認証がタイムアウトしました、またはブラウザが切り替わりました。もう一度お試しください。」というメッセージが表示された直後にログアウトのリダイレクトが正常に動作するようです。これは、ログアウトの直後にログインを試みるときに発生するようです。

以下のクリップでは、最初はログアウトのリダイレクトが失敗していますが、13 秒の時点でメッセージ表示後にリダイレクトが正常に動作している様子が確認できます。