Non conosco abbastanza il tuo stack o il tuo caso d’uso, ma penso di aver risolto un problema simile in passato e alcune idee potrebbero esserti utili.
Ho un’app Next.js in cui ho bisogno che il lato client abbia un JWT valido per effettuare chiamate alla mia API backend se esiste una sessione Discourse.
Per questo utilizzo Discourse come mio provider di identità tramite DiscourseConnect.
Nel mio caso, lo sto facendo con una singola chiamata fetch lato client con { credentials: "include" }, che funziona solo perché ho tutto configurato con un singolo dominio e la chiamata fetch segue in modo trasparente i reindirizzamenti.
Il mio client recupera un /auth/token personalizzato, che verifica l’esistenza di _t (solo per evitare un reindirizzamento inutile altrimenti) e restituisce un reindirizzamento a un URL /session/sso_provider protetto, costruito seguendo la documentazione nell’argomento collegato, con nonce/sso/sig, e un return_sso_url che punta a un /auth/callback personalizzato, che estrarrà i dati inviati da Discourse, costruirà e restituirà un token JWT che il mio client potrà utilizzare d’ora in poi.
Credo che il tuo caso d’uso possa essere risolto in modo simile.