Alcuni endpoint non richiedono alcuna autenticazione, praticamente qualsiasi altra cosa richiederà che tu sia autenticato. Per diventare autenticato dovrai creare una chiave API dal pannello di amministrazione.
È un peccato, perché ci sono molti usi legittimi dell’API
che gli utenti normali potrebbero sfruttare, non solo gli amministratori.
Ad esempio, un cronjob mensile che un utente potrebbe impostare per scaricare il proprio
preferences.json invece di fare clic su Download in Preferenze
(Backup/export/import Preferences).
Sto dicendo che è necessaria una modifica al codice sorgente, quindi presto gli utenti di tutto il mondo potranno accedere all’API della Discourse locale che stanno utilizzando, per ottenere i propri dati personali, ecc.
Tuttavia, senza il supporto degli amministratori e un endpoint approvato nelle impostazioni del sito delle chiavi API utente, gli “utenti normali” non possono comunque generare le proprie chiavi API.
Questa risposta non è corretta. Qualsiasi utente può generare una chiave API utente se la generazione di chiavi API utente è abilitata per il livello di fiducia dell’utente. Se non si imposta un reindirizzamento nel payload della richiesta, verrà visualizzata una risposta codificata in base64 nel browser che contiene la chiave.
Vedere questo argomento per uno script che mostra come viene fatto.
Sto pensando al caso predefinito in cui la persona A ha installato Discourse, e la persona B è semplicemente un utente semplice sul Discourse della persona A, e A non ha modificato alcuna impostazione di amministrazione, B potrebbe ancora fare molto con l’API?
La generazione della chiave API utente è abilitata per tutti gli utenti per impostazione predefinita e tutto ciò che puoi fare tramite l’interfaccia web puoi farlo tramite l’API perché l’interfaccia web è solo un frontend dell’API.
Personalmente la uso in un’estensione di Chrome che tiene un conteggio totale di tutte le mie notifiche non lette su tutte le istanze su cui ho account, con alcune eccezioni.
Se un utente ha già un account su un’istanza Discourse, dovrebbe essere in grado di utilizzare la stessa autenticazione tramite cookie dal browser in qualsiasi richiesta API non di tipo browser.