In sostanza, sto cercando di permettere agli utenti di verificare di essere i proprietari di alcuni account social che non supportano OpenID o OAuth (ad esempio, account Riot). Qual è l’approccio migliore per farlo? Sarebbe possibile configurare Discourse come provider OAuth per un’app esterna che modifica il database? Non conosco ancora bene Discourse, quindi sto cercando di capire il modo migliore per realizzare qualcosa del genere.
Credo che @falco abbia esperienza con Riot?
È un problema interessante. Un approccio che abbiamo sperimentato è stato utilizzare Keybase. Hanno già un sistema di verifica dell’identità robusto che funziona con molte piattaforme. Puoi leggere i nostri esperimenti su Discourse Keybase Proof. Non sono sicuro di come sia la situazione ora che Zoom l’ha acquisita.
Questa parte è un po’ strana. In che modo il fatto che Discourse funga da IdP per Riot aiuterebbe a provare su Discourse che possiedi un account Riot/Matrix esistente?
Puoi spiegare meglio? Ieri stavo esaminando l’SSO di Matrix e finalmente hanno introdotto qualcosa. Implementano sia SAML che, sul ramo develop, OAuth2. Discourse non può comunicare né come server, solo come client, quindi stavo valutando se far sì che Discourse agisca come server OAuth2 o aggiungere il supporto per il protocollo SSO proprietario di Discourse in Synapse. Non sono sicuro che questo risponda alle tue esigenze…
Esiste un URL pubblico di Riot che l’utente possa controllare? Ad esempio, una biografia pubblicamente accessibile in cui l’utente possa inserire un codice? In tal caso, un plugin Discourse potrebbe generare un codice che l’utente inserirebbe nella propria biografia; quando inserisce il proprio nome utente Riot, verrebbe controllato se il codice è presente in URL/<riot-username>/bio.
Un sistema del genere permetterebbe di creare un plugin abbastanza generico, configurabile per più siti di terze parti tramite alcune impostazioni di sistema.
Lo standard per cui mi dichiaro a favore dell’adozione è il “link bidirezionale rel="me"”. Aggiungi un link da quella pagina al tuo profilo Discourse e un link dal tuo profilo Discourse a quella pagina: entrambi i sistemi scansionano l’altro URL, individuano rel=me e lo contrassegnano come
Verificato.
Per i casi particolari è possibile predisporre soluzioni per estrarre il campo bio da piattaforme che non implementano questo standard.
Intendevo Discourse come IdP per il mio programma autonomo. Non sono sicuro di quale sia il modo migliore per collegare cose come un ID di Riot Games, dato che non hanno ancora una soluzione OAuth pubblica. So che hanno appena annunciato RSO, ma non hanno fornito una data per la disponibilità pubblica.
Attualmente, affinché le applicazioni di terze parti possano “verificare” un account Riot, è necessario che gli utenti accedano al client di League of Legends e modifichino un campo nella scheda delle impostazioni. Stavo solo cercando di trovare un modo per passare da Discourse all’API di League e aggiungere il campo profilo personalizzato una volta effettuata la verifica.
Ecco la parte in cui entra in gioco il codice per riferimento. Fondamentalmente, sono quindi in grado di chiamare l’API di League e verificare se il valore di questo codice corrisponde a quello che è stato loro indicato di utilizzare.
Inoltre, sto utilizzando un sistema di accesso SAML per il mio Discourse, poiché è integrato con il resto del mio sito web, e volevo trovare un modo per aggiungere nomi utente Discord “verificati” in modo simile. Ancora una volta, non sono sicuro di come procedere per far sì che l’utente connesso su Discourse venga invitato a eseguire un OAuth tramite Discord OAuth e quindi modificare il valore sul lato di Discourse.
Spero che abbia senso e mostri cosa sto cercando di ottenere. Se hai ancora bisogno di ulteriori informazioni su ciò che sto cercando di fare, posso fornirne di più. Voglio solo mostrare account verificati nei profili. Ho intenzione di includere Minecraft (Mojang), Discord e Riot Games (League of Legends), ma per il mio utilizzo avrei bisogno che fossero valori verificati per evitare l’impersonificazione.
Credo che il collegamento Twitch ↔ Riot utilizzato per le versioni beta di Valorant fosse OAuth2, su login. Non sono sicuro che sia possibile creare un client_id.
Beh, sembra fattibile con un plugin personalizzato!
Dovrebbe funzionare utilizzando la nostra integrazione nativa con Discord. Basta abilitare l’accesso con Discord e gli utenti potranno collegare il loro profilo Discord dalle loro pagine profilo.
Sì, al momento non è pubblico ed è ancora nelle fasi iniziali. Ne hanno parlato in questo articolo https://www.riotgames.com/en/DevRel/rso sul loro sito per sviluppatori.
Anch’io l’ho pensato, quindi vedrò se riesco a farlo funzionare.
L’unico motivo per cui non sto cercando di usare l’integrazione nativa con Discord è che il resto dei miei siti web utilizza già l’autenticazione tramite un IdP principale e vorrei che le persone creassero un unico account per tutto il mio sito, se ha senso. Vedrò se riesco a far funzionare il plugin di League of Legends e valuterò quanto sarebbe difficile realizzare ciò che ho in mente. Non ero troppo sicuro se esistessero modi per accedere e modificare i profili utente da un’applicazione PHP o simile. In definitiva, pensavo semplicemente di usare PHP per un sistema di accesso OAuth semplice in cui gli utenti accedono con Discord, ma sto avendo problemi a capire come “dire” allo script PHP quale utente ha avviato la richiesta, a meno che non possa in qualche modo avviare la richiesta tramite Discourse e far sì che lo script PHP verifichi che sia legittima.
Grazie mille a tutti per le risposte qui, sono ancora nuovo alla gestione del mio Discourse e apprezzo molto tutto l’aiuto. ![]()
Beh, dovrò verificare se i plugin hanno più accesso rispetto ai programmi esterni tramite l’API, dato che non ho trovato alcun modo per modificare un campo utente tramite l’API su https://docs.discourse.org/.
