Come disconnettere completamente la sessione utente e cancellare i dati oauth

Sto riscontrando un problema con la logica di logout.

Stiamo utilizzando la configurazione di Auth0 con Discourse OAuth2 e il problema è che quando attiviamo il logout utilizzando currentUser.destroySession(), la sessione di Discourse viene terminata poiché l’utente viene disconnesso, ma i dati OAuth sono in qualche modo ancora memorizzati nella cache?

Cosa intendo qui?

Contesto: quando si utilizza l’SSO, ci si aspetta che quando l’utente effettua il logout dal proprio sito, la prossima volta che tenterà di accedere nuovamente, verrà reindirizzato dal proprio sito alla pagina SSO dove potrà inserire le proprie credenziali e, una volta autenticato, l’utente verrà reindirizzato nuovamente al proprio sito con una sessione attiva.

Quindi, utilizzando questo contesto sopra, Discourse non sembra disconnettere completamente l’utente, quindi ogni volta che effettuo il logout da Discourse, funziona bene, ma ogni volta che tento di accedere nuovamente al mio forum, Discourse non attiva nuovamente la pagina SSO, in qualche modo ricorda ancora l’account SSO precedentemente connesso, quindi seleziona e accede automaticamente all’utente, il che è molto strano.

E questo in pratica significherebbe che sono bloccato con quell’utente, non posso passare a un account utente diverso, a meno che, probabilmente, non utilizzi la modalità incognito o un browser completamente diverso :frowning:

Aspettativa: Una volta cliccato su logout, al prossimo tentativo di accesso dovrei essere indirizzato alla mia pagina SSO di Auth0 dove posso fare il necessario e poi sarò reindirizzato nuovamente al forum di Discourse.

Sembra essere un problema con currentUser.destroySession() su come cancella la sessione più i dati OAuth?

Ho anche testato eseguendo manualmente una chiamata API per distruggere la sessione utente, ancora gli stessi risultati, nessun miglioramento:

fetch(`https://MY_FORUM.discourse.group/admin/users/USER_ID/log_out`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Api-Key': 'API_KEY',
    'Api-Username': 'ADMIN_USERNAME',
  },
})

Condividi idee su questo se hai un’idea su come risolvere/approcciare il logout quando si utilizza OAuth.

1 Mi Piace