OAuth를 사용한 로그인 플로우 (Flask -> Discourse -> Flask)

안녕하세요!

관련이 있는 두 가지 질문이 있습니다. 누군가 도움을 줄 수 있기를 바랍니다 :slight_smile:

저는 Discourse 인스턴스가 Twitter, Facebook, Google을 통해 OAuth를 지원하도록 구성했습니다. 제가 하려는 작업은 다음과 같습니다:

시나리오 1:

  1. 사용자가 /home(Python/Flask 앱)에 도착합니다.
  2. 사용자는 Discourse 계정에 가입하기를 원합니다.
  3. 사용자는 적절한 OAuth 플로우, 예: https://discourse.example.com/auth/google로 리디렉션됩니다.
  4. 사용자가 등록을 완료한 후 /home으로 리디렉션할 수 있나요?

시나리오 2:

  1. 사용자가 /home(Python/Flask 앱)에 도착합니다.
  2. 사용자는 이미 Discourse 계정을 가지고 있습니다.
  3. 사용자는 일부 보호된 페이지에 접근하기 위해 OAuth를 사용하여 메인 앱에 로그인하기를 원합니다.
  4. 사용자는 적절한 OAuth 플로우로 리디렉션됩니다.
  5. Discourse가 사용자의 계정 자격 증명을 확인한 후 /user로 리디렉션할 수 있나요?

불분명한 부분이 있으면 알려주세요. 자세히 설명해 드리겠습니다!

감사합니다!

혹시 아직 보지 못하셨을 수도 있으니, 저희 문서는 Discourse OAuth2 Basic 에 있습니다. 찾으시는 답변 중 일부가 여기에 포함되어 있을까요?

답변해 주셔서 감사합니다, @rishabh!

불행히도 제가 확인한 바로는 문서에 제 질문에 대한 내용이 포함되어 있지 않습니다. 제 OAuth 설정은 정상적으로 작동하고 있으며, 문제되는 부분은 시나리오 1과 2에 설명된 추가 기능입니다.

제가 찾고 있는 것은 대략 callback_url과 같은 선택적 파라미터입니다. 이 파라미터는 OAuth 제공자가 사용자의 계정을 확인하고 Discourse로 되돌려 보낸 이후에 사용자를 해당 대상 URL로 리다이렉트하는 역할을 합니다.

일종의 제 Discourse 인스턴스가 제 Flask/Python 앱을 위해 자체적으로 OAuth 제공자 역할을 하는 것과 같은 구조라고 볼 수 있겠네요.

예를 들어 https://discourse.example.com/auth/google?callback_url=https://example.com/home은 사용자를 Google로 보내고, Discourse로 되돌려 온 뒤, 다시 callback_url로 리다이렉트합니다.