안녕하세요,
프론트엔드 앱에서 discourse에 로그인하는 프로세스를 만들고자 합니다. 어떻게 해야 하나요?
감사합니다 ![]()
안녕하세요,
프론트엔드 앱에서 discourse에 로그인하는 프로세스를 만들고자 합니다. 어떻게 해야 하나요?
감사합니다 ![]()
일반적인 해결 방법은 다음과 같습니다:
Discourse에서만 사용자를 관리하는 경우, 리다이렉트 버튼이 훨씬 쉬울 수 있습니다!
답장 주셔서 감사합니다! 그런데 실제로 iframe를 열어 인증 방식을 선택할 수 있게 할 수 있을까요?
아니요, iframe은 지원되지 않습니다.
부모 사이트에서 사용자 계정을 관리한 후 Discourse Connect로 인증하거나, 단순히 Discourse로의 링크를 제공하는 두 가지 방법 중 하나를 선택할 수 있습니다.
로그인 라우트(/login)로 링크하여 사용자에게 즉시 로그인을 유도할 수도 있습니다.
정말 어떻게 사용하는지 이해가 잘 안 됩니다. 제 생각에는 웹사이트에 로그인 버튼을 넣고, 사용자가 인증 방식을 선택하는 구조가 아닐까 싶은데, 이런 시나리오에서 가능한 플로우가 어떻게 될까요?
왜 웹사이트에서 로그인해야 하나요? 사용자 계정을 거기서 관리하고 계신가요?
프론트엔드에서 게시글/토픽을 생성할 수 있도록 해야 하므로, 먼저 인증이 필요합니다. 맞는 말씀이죠?
네, 어느 정도 이해가 됩니다. 본질적으로 "UI의 일부를 다시 작성하고, API만 통해 통신하겠다"는 말씀이신가요?
여기서 그 작업을 도와줄 무료 지원은 많이 기대하기 어려울 것 같습니다. 하지만 아래 링크를 참고해 보시기 바랍니다:
https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield
이미 이와 유사한 시도들이 존재하며, 특히 앱 관련 사례가 있습니다. 예를 들어 다음과 같은 프로젝트들을 조사해 보시는 것이 좋습니다:
또한 Fig이라는 프로젝트도 있었지만, 아직 오픈소스로 공개되지 않았습니다:
다만, 이러한 종류의 솔루션은 초기 개발 및 유지보수에 매우 높은 수준의 노력이 필요하다는 점을 유의하세요. 제가 아는 범위 내에서 가장 좋은 두 가지 예시가 모두 중단되었는지 의문입니다(?).
대안으로, UI의 많은 요소를 다시 작성해야 하는 문제를 피하기 위해 웹사이트 전체를 Discourse 인스턴스로 구축하는 것(플러그인과 테마 컴포넌트를 활용하여)을 고려해 보실 수 있습니다.
저는 Discourse를 인증 제공자(Identity Provider)로 사용하고 있으며, 잘 작동하고 있습니다. 이를 통해 웹사이트에 “로그인” 링크를 만들 수 있고, 이 링크를 클릭하면 사용자는 Discourse 인스턴스로 이동합니다. 이미 로그인되어 있거나 로그인 플로우를 완료한 후, 사용자는 페이로드에 추가한 return_sso_url로 리다이렉트되며, 이때 사용자 자격 증명과 정보가 함께 전송됩니다. 이 return_sso_url은 Discourse의 페이로드를 수신한 후 인증된 세션을 원하는 방식(예: 세션 쿠키)으로 저장하는 웹사이트의 라우트일 수 있습니다.
참고로, Lexicon은 방치된 것이 아니라 여전히 활발하게 개발되고 있습니다.
@Roie_Natan 님, 자바스크립트에 익숙하시다면 Lexicon의 소스 코드를 살펴보셔서 어떻게 구현되었는지 확인해 보실 수 있습니다.
다만 @merefield 님이 지적했듯이, 해결 방법을 찾아가는 데 도움이 될 기존 게시물들이 있습니다.
사용자 세션에 대해 다루는 리소스 하나를 공유합니다: Storing extra data about a user's session - #3 by sam
@pmusaraj 님의 앱 인증 플로우도 유용할 수 있습니다:
정말 좋네요! 수정해 주셔서 감사합니다.