Oauth 設定でのログアウトが機能しない

こんにちは、

ログアウトボタンを押してもユーザーがログアウトされないという小さな問題が発生しています。

環境構成

Vue.js フロントエンドを使用しており、Auth0 で認証できます。ログイン後、メッセージボードボタンを押すと Discourse ボードにリダイレクトされ、そこで再度 Auth0 による認証が行われます。

インストール手順
こちらのチュートリアルに従いました。

バグの説明と再現手順

Discourse フォーラムでログアウトボタンを押すと、一瞬「リフレッシュ」ボタン付きのモーダルが表示されますが、その後自動的にページが更新され、ログアウトされた状態でないままフォーラムが読み込まれてしまいます。

以下は、ブラウザで行われた呼び出しのスクリーンショットです。赤色のエラー呼び出しについては確信が持てません。それらは赤色のエラー呼び出しの後に再度トリガーされ、その後成功しているように見えるためです。

デバッグログにはこれに関連する記述は見当たりません。

期待される動作

ユーザーが Auth0 からログアウトされ、ページが Auth0 のログインページにリダイレクトされること。

ええと、問題は、ユーザーがログアウトしても、すぐに自動的に再ログインされてしまうことです。一つの解決策として、「ログアウトリダイレクト」設定を外部サイトに変更し、すぐに再ログインされないようにする方法があります。あるいは、/login に設定することも考えられますね。:thinking:

今後数日間でこの件について検討し、より良い解決策がないか探ります。ログアウトボタンを押しても何も起こらないというのは、確かに混乱を招きますから。

これは以下の条件の両方が揃った場合にのみ発生します:

  • 単一認証戦略(ローカルログインが無効化された状態)の使用
  • ログイン必須設定の有効化

両方の条件が満たされた場合にダッシュボードに警告を表示し、ユーザーに対してログアウトリダイレクトを適切に設定するよう促すのはどうでしょうか?これは比較的珍しい設定であり、管理者がログアウト先を5秒ほど追加で設定するだけで済む問題です。

@david ログインページへリダイレクトするのは良い解決策ですね、ありがとうございます!@Falco さんの意見に賛成です。これを設定する際に警告を表示する必要があるかもしれません。そうしないと、奇妙な動作を引き起こす可能性があります!

素晴らしい!

@Falco が言った通り、これはかなり珍しいことですが、login_required サイトのデフォルトのログアウトリダイレクトを /login に設定しようと思います。シンプルで、警告を読んでいるかどうかに関わらず機能します。

/login はログイン必須 + SSO の場合に自動ログインをトリガーしませんか?

その通りです。少し直感に反するかもしれませんが、SSO ではこれまでそのように動作しており、したがって、この新しいシングル認証モードでも同様です。

この問題に対する PR を作成しました。SSO サイトの同じ問題も解決します