Oauth 설정에서 로그아웃이 작동하지 않습니다

안녕하세요,

로그아웃 버튼을 눌렀을 때 사용자가 로그아웃되지 않는 작은 문제가 있습니다.

우리의 구성

Vue.js 프론트엔드를 사용하며, 여기서 Auth0로 인증할 수 있습니다. 로그인한 후 메시지 보드 버튼을 누르면 Discourse 보드로 리디렉션되며,在那里서도 다시 Auth0로 인증됩니다.

설치
이 튜토리얼을 따랐습니다.

버그 설명/재현 방법

Discourse 포럼에서 로그아웃을 누르면 새로고침 버튼이 있는 모달이 잠시 표시된 후, 페이지가 자동으로 새로고침되어 로그아웃되지 않은 상태로 포럼이 로드됩니다.

브라우저에서 실행되는 호출에 대한 스크린샷입니다. 빨간색 오류 호출에 대해 정확히 확신은 없지만, 빨간색 오류 호출이 다시 트리거된 후에 성공하는 것처럼 보입니다.

디버그 로그에서 이와 관련된 내용을 찾을 수 없습니다.

기대되는 동작

사용자가 Auth0에서 로그아웃되어 페이지가 Auth0 로그인 페이지로 리디렉션됩니다.

음, 문제는 사용자가 로그아웃은 되는데, 바로 자동으로 다시 로그인된다는 점이에요. 한 가지 해결책은 logout redirect 설정을 외부 사이트로 지정해서 사용자가 바로 다시 로그인되지 않도록 하는 거예요. 아니면 /login으로 설정해도 될 것 같아요 :thinking:

다음 며칠 동안 이 문제에 대해 좀 더 고민해 보겠습니다. 로그아웃 버튼이… 아무것도 하지 않는 건 혼란스러우니까 더 나은 해결책을 찾아볼게요.

이 문제는 다음 조건을 사용할 때만 발생합니다:

  • 로컬 로그인이 비활성화된 단일 인증 전략으로 단일 로그인 사용
  • 로그인 필수 설정이 활성화된 경우

두 조건이 모두 충족될 때 대시보드에 경고 메시지를 추가하고, 사용자가 로그아웃 리다이렉트를 다른 곳에 올바르게 설정하도록 안내하는 것은 어떨까요? 관리자만 5초 정도 더 걸려서 로그아웃 주소를 설정할 수 있는 비교적 드문 구성입니다.

@david 로그인 페이지로 리다이렉트하는 것은 좋은 해결책입니다. 감사합니다! @Falco 님과 동의하는데, 이렇게 설정하려면 경고가 필요할 수 있습니다. 그렇지 않으면 이상한 동작이 발생할 수 있거든요!

좋아요!

@Falco 님이 말씀하신 대로, 이런 경우는 꽤 드뭅니다. 하지만 login_required 사이트의 기본 로그아웃 리다이렉트를 /login으로 설정하는 것이 좋겠습니다. 깔끔하고 간단하며, 사람들이 실제로 경고 메시지를 읽는 것에 의존하지 않아도 되니까요.

/login이 로그인 필요 + SSO 상태에서 자동 로그인을 트리거하지 않나요?

맞습니다. 직관적이지는 않지만, SSO에서는 항상 그렇게 작동해 왔으므로 이 새로운 단일 인증기 모드에서도 동일합니다.

이 이슈에 대한 PR을 열었습니다. SSO 사이트에서도 동일한 문제를 해결합니다.