URL을 통해 미리 채워진 새 주제를 작성할 때 SSO 리다이렉션 오류

안녕하세요

저는 discourse를 위한 SSO 제공자로 자체 인증 서비스를 구현하고 있습니다. 잘 작동하고 있습니다. 하지만 로그인하지 않은 사용자가 미리 채워진 주제 URL을 열면, discourse로 다시 리다이렉트된 후에도 미리 채워진 데이터를 볼 수 없습니다.

전체 시나리오:

  • 로그인하지 않은 사용자가 미리 채워진 주제 생성 URL을 엽니다.
  • 자동으로 SSO 페이지로 리다이렉트됩니다.
  • SSO로 로그인한 후 http://discourse_site/session/sso_login?....로 다시 리다이렉트됩니다.
  • 여기서 사용자는 채워진 데이터가 포함된 주제 생성 상자를 볼 것으로 기대하지만, discourse는 최신 주제 페이지만 표시합니다. 주제 생성 상자조차 표시되지 않습니다.

이 문제에 대해 도움을 주실 수 있나요? 제 설정에 문제가 있는 건지, 아니면 버그인 건가요?

특정 주제 안에서 로그인 버튼을 누르면 리다이렉트가 정상적으로 작동하여 해당 주제로 돌아오는 것은 확인했습니다.

여기에 설명된 방법을 사용해보십시오: Creating pre-filled personal message links - #11.

네, 이제 작동합니다. 정말 감사합니다.

이전 메시지:

@simon 님, 답변해 주셔서 감사합니다. 불행히도 제 환경에서는 작동하지 않았습니다. 링크에 따르면 다음과 같은 URL을 사용하라고 되어 있었습니다.

http://localhost:3000/session/sso?return_path=http%3A%2F%2Flocalhost%3A3000%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation+requested+about+gentle+yoga+classes

우선, 공식 Discourse SSO 문서의 6단계에 이 값을 추가해야 한다고 생각했습니다. 따라서 다음과 같은 형태가 될 것입니다:

http://discourse_site/session/sso_login?sso=payload&sig=sig&return_path=https%3A%2F%2Fdiscourse_site%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation%2Brequested%2Babout%2Bgentle%2Byoga%2Bclasses

하지만 작동하지 않았습니다. 그래서 다른 여러 위치에서도 테스트해 보았지만 모두 실패했습니다. return_path를 어디에 배치해야 하는지 좀 더 자세히 설명해 주실 수 있을까요?

해당 게시물에 제시된 형식으로 링크를 생성하기만 하면 됩니다. Discourse 사이트의 올바른 URL을 대입하고, 사용자 이름을 scossar에서 해당 사이트에 실제로 존재하는 사용자 이름으로 변경해야 합니다. 링크에 payload 또는 sig 매개변수를 추가하지 마세요. 이 부분은 기존 SSO 구현에서 이미 처리됩니다. return_path 매개변수가 하는 일은 사용자를 미리 채워진 주제를 생성하는 URL로 리디렉션하는 것뿐입니다.

참고로 제가 링크로 연결한 예시에서는 미리 채워진 메시지(message)를 생성하고 있습니다. 메시지 대신 주제를 생성하려면 예시 코드에 제시된 return_path를 조정해야 합니다.