Puoi farlo con DiscourseConnect (con Discourse che funziona come provider di autenticazione): Use Discourse as an identity provider (SSO, DiscourseConnect).
Non l’ho ancora provato, ma il parametro prompt potrebbe essere utile nel tuo caso:
prompt: Seprompt=none, la richiesta SSO viene trattata come una richiesta di “verifica”. Se il browser/dispositivo è già connesso a Discourse, Discourse restituirà una risposta SSO di successo contenente informazioni sull’autenticazione dell’utente, come al solito. Se il browser/dispositivo non è già connesso, Discourse non chiederà all’utente di accedere e restituirà immediatamente una risposta SSO contenente il parametrofailed=trueinvece delle informazioni sull’utente. Questo fornisce un meccanismo per verificare se l’utente è connesso, senza mai indirizzare l’utente a una finestra di accesso se non lo è.