질문자님의 스택이나 사용 사례에 대해 충분히 알지 못하지만,我以前 비슷한 문제를 해결해 본 적이 있어 몇 가지 아이디어가 도움이 될 수 있을 것 같습니다.
저는 Next.js 앱을 사용하고 있으며, Discourse 세션이 존재할 경우 클라이언트 측에서 백엔드 API에 호출을 하려면 유효한 JWT가 필요합니다.
이를 위해 DiscourseConnect를 통해 Discourse를 ID 제공자(Identity Provider)로 사용하는 방법을 적용하고 있습니다.
제 경우, 단일 도메인으로 모든 것을 설정하고 fetch 호출이 리다이렉트를 투명하게 따르기 때문에, { credentials: "include" } 옵션을 가진 단일 클라이언트 측 fetch 호출로 이를 처리하고 있습니다.
클라이언트는 커스텀 /auth/token을 요청합니다. 이 엔드포인트는 _t의 존재를 확인(그렇지 않을 경우 불필요한 리다이렉트를 방지하기 위함)하고, 링크된 토픽의 문서에 따라 nonce/sso/sig를 포함하여 구성한 보안이 적용된 /session/sso_provider URL로 리다이렉트를 반환합니다. 이때 return_sso_url은 커스텀 /auth/callback을 가리키며, 이 콜백에서는 Discourse가 전송한 데이터를 추출하여 클라이언트가 이 시점부터 사용할 수 있는 JWT 토큰을 생성하고 반환합니다.
질문자님의 사용 사례도 비슷한 방식으로 해결될 수 있을 것이라고 생각합니다.