Ciao. Sono nuovo di zecca su Discourse. Ho un’app in esecuzione su AWS che utilizza Cognito per l’autenticazione. Voglio collegare questa app al mio nuovo forum ospitato su Discourse. Ho fatto un buon inizio, ma spero che qualcuno possa fornirmi indicazioni sui passaggi finali per completare questa configurazione.
L’obiettivo è rendere l’esperienza di login fluida tra la mia app e il forum Discourse. Quindi:
-
Se un utente è già loggato nella mia app, quando accede al forum Discourse, quest’ultimo lo riconosce e non richiede un nuovo login.
-
Allo stesso modo, se un utente visita per la prima volta il forum Discourse e non è loggato, Discourse lo reindirizzerà alla pagina di login della mia app (o a un’interfaccia di login ospitata, se necessario).
Il Plugin di autenticazione OpenId Connect sembra essere ideale per questo scopo. Mi sono iscritto a un Piano Business con Discourse per assicurarmi di poter utilizzare questo plugin.
Ho seguito le istruzioni fornite da @david e ho completato quanto credo sia necessario configurare lato Cognito:
-
Da Cognito, ho ottenuto il “documento di discovery OpenID Connect” e l’“ID client OpenID Connect”.
-
Nelle impostazioni di Discourse, sotto OpenID_Connect, li ho inseriti e salvati.
-
Ho spuntato “Abilita autenticazione OpenID Connect” e, sotto “Ambito di autorizzazione OpenID Connect”, ho inserito “openid email”. Ho salvato queste impostazioni.
Secondo la descrizione del plugin, dovrei essere a posto, corretto?
Ebbene, quando accedo alla mia app e poi vado sul mio forum, non succede nulla. Viene mostrata semplicemente la normale home page con i pulsanti “Iscriviti” e “Accedi”. Speravo che il sistema mi avesse loggato automaticamente dopo aver verificato con Cognito, ma non è successo. Cosa altro devo fare?
Inoltre, se un utente arrivasse al sito del forum per la prima volta (senza aver mai effettuato il login nella mia app), non dovrebbe vedere i pulsanti di iscrizione e login di Discourse; invece, dovrebbe vedere un pulsante che, cliccato, lo reindirizza alla pagina di login della mia app. Come posso aggiungerlo?
Infine, gli utenti si abbonano alla mia app e pagano per utilizzare le funzionalità premium. Questa informazione è salvata come attributi personalizzati per l’utente in Cognito (c’è un attributo personalizzato che indica se l’utente è abbonato o meno). Solo gli utenti abbonati dovrebbero poter pubblicare sul forum. Quindi, quando Discourse verifica con Cognito per ottenere le informazioni dell’utente, deve controllare l’attributo personalizzato dell’utente e concedere il permesso di pubblicare solo se l’utente è abbonato. Come posso implementare questo?
Essendo così nuovo su Discourse, apprezzerei moltissimo qualsiasi informazione che chiunque possa avere su una di queste domande. Grazie!