Discourse에 사용자가 로그인할 때 외부 서비스에서 계정 생성/로그인 트리거

토론에 정말 감사드립니다.

링크를 읽어 보았습니다: Use Discourse as an identity provider (SSO, DiscourseConnect) - #8 by reverend_paco

하지만 제 생각에는 이 방법은 사용자를 보조 사이트로 보내고 그곳에서 인증을 관리하고 싶을 때 사용하는 것 같습니다.

제 경우에는 Discourse 사이트에서 실행되는 JS 코드가 있습니다. 그리고 이 JS가 같은 서버의 특정 경로로 호출되어 pocketbase용 쿠키를 받아오기를 원합니다.

실제로 저는 Discourse 앞에 nginx 프록시를 사용하고 있으며, 그래서 특수한 경로 /pb/auth (예시)를 추가했습니다. 제 JS가 그 경로에 도달하면, Discourse 내부에 있지 않은 백엔드 프록시 서버가 해당 연결을 받아 _t 세션 쿠키를 디코딩하려고 합니다.

이렇게 한 이유는 Discourse 플러그인을 추가하는 것보다 조금 더 쉬운 것 같아서였습니다 (플러그인 개발 및 개발 환경 설정에 익숙하지 않아서요). base64와 sha 해시를 사용하여 쿠키를 디코딩하는 것만으로 사용자를 식별하는 안전한 페이로드를 얻을 수 있다면 그렇게 하기로 했습니다.

하지만 Discourse에 이 경로를 추가하는 플러그인을 만드는 것이 단순한 일이라고 생각하신다면, 그 방법을 시도해 보고 싶습니다. 장기적으로는 올바른 방법인 것 같습니다. 하지만 저는 오래된 Perl 프로그래머라서 게으른 방법을 선호하는데, 제 nginx 경로 설정이 더 게으른 방법인 것 같았습니다. :slight_smile: