Utilizziamo un flusso SSO di Discourse che abbiamo implementato seguendo questa guida: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
Finora ha funzionato bene per noi. Tuttavia, ora vogliamo permettere agli utenti del nostro sistema di modificare il proprio indirizzo e-mail e questo sembra causare problemi.
Quando modifico l’e-mail del mio utente nel nostro sistema, l’SSO verso Discourse smette di funzionare.
Errore di accesso
C’è un problema con il tuo account. Contatta l’amministratore del sito.
Immagino che Discourse riceva un payload con un’e-mail e un nome utente che non corrispondono e non sappia come gestire la situazione.
Qual è il modo migliore per gestire questo caso?
L’idea migliore che mi è venuta in mente è utilizzare l’API di Discourse per modificare l’e-mail dell’utente in Discourse, allineandola a quella del nostro sistema, prima di avviare l’SSO.
Ma non so se sia possibile. Di seguito il mio tentativo fallito.
Ecco la mia richiesta:
https://forum-stage.{domain}.com/users/{username}/preferences/email
Intestazioni:
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Corpo (come x-www-form-urlencoded in Postman):
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system
Ecco la risposta che ho ricevuto:
{
"errors": [
"Non sei autorizzato a visualizzare la risorsa richiesta."
],
"error_type": "invalid_access"
}