DW_dev
1
こんにちは、
私のDiscourseフォーラムでソーシャルログイン(Google、Discord、LinkedIn)に問題が発生しています。
モバイルでの手順:
-
ソーシャルログインが通常どおり開きます。
-
私のサイトにリダイレクトされた後、ホームページにのみアクセスし、ログインできていません。
ログには毎回次のように表示されます。
(google_oauth2) Authentication failure! csrf_detected
または
(discord) Authentication failure! invalid_credentials: invalid_request
確認済みの事項:
-
OAuth設定は正しい(デスクトップで機能している)
-
デバイスのCookie/キャッシュを削除した
-
アプリ内ブラウザではなく、実際のブラウザでテストした
-
どのモバイルブラウザでも → 常にCSRFが検出される
質問:
Discourseで、モバイルデバイスでのみセッション/Cookieを失い、csrf_detectedで中断される原因として考えられるものは何でしょうか?
どんな助けでも感謝します!
「いいね!」 1
pfaffman
(Jay Pfaffman)
2
これは標準のインストールですか?そうでない場合、force_https は有効になっていますか?
DW_dev
3
こんにちは、はい、それは標準的なDiscourseのインストールです(Hetznerサーバーにインストールされています)。
DW_dev
4
モバイルデバイスでソーシャルログイン(Google、Discordなど)がPCでは機能するのにcsrf_detectedで失敗する問題の解決策を見つけました。
原因は私のテーマにありました:
テーマの\u003chead\u003eセクションにあるカスタムJavaScriptスクリプトが、モバイルデバイスでページを絶えずリロードしていました(window.location.replace)。
この強制的なリダイレクトが、Google/Discordのコールバック後にセッション検証に必要となる一時的なCSRFトークンを破壊していました。
解決策:
モバイル表示を強制するスクリプト全体をテーマから削除しました。
同様の問題を抱えていてカスタムテーマを使用している場合は、リダイレクトを引き起こすスクリプトが実行されていないか確認してください。私の場合はそれが原因でした!
「いいね!」 1
system
(system)
クローズされました:
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.