Ciao,
Sto sviluppando un plugin molto specifico per la nostra istanza di Discourse e avrei alcune domande.
A un certo punto, il plugin dovrà inviare una raccolta delle immagini dei topic di Discourse a Imgur. La parte che raccoglie queste immagini è già pronta.
Ora sto cercando di autenticarmi sull’API di Imgur utilizzando il loro flusso OAuth2. Ho già creato un’interfaccia di amministrazione per il plugin che permette di premere un pulsante per autorizzare il plugin sul proprio account Imgur. Una volta che l’utente effettua il login, viene chiamato un URL di callback (configurato come la mia istanza di Discourse e una rotta specifica che ho creato nel plugin) con il token di accesso (vedi esempio).
http://localhost:3000/admin/plugins/plugin_name/callback#access_token=<token>&...
La mia domanda è: come posso recuperare questo token? Non ho idea da dove iniziare.
La mia comprensione è che, poiché il token viene restituito come parametro nell’hash, l’operazione deve essere eseguita lato JS. Ho provato a impostare un controller e una rotta per il mio URL di callback, ma non riesco a capire come leggere l’URL (e in particolare la parte hash) da lì. (Non ho trovato nulla di utile nella documentazione di Ember.js o su StackOverflow). Ho anche provato a impostare diversi listener di eventi, ma sembrano non essere mai attivati.
La mia seconda domanda è: dove dovrei memorizzare il token e il token di aggiornamento? Posso salvarlo come impostazione di sistema dal plugin? Ho sentito parlare di PluginStore, ma è accessibile solo in Ruby (il che significherebbe creare un endpoint per il client per inviare questi token al server). Inoltre, è sicuro dal punto di vista della sicurezza?
Grazie!
Modifica: Avevo un errore di battitura nel nome del file della mia rotta, mancava una ‘s’, ecco perché nulla veniva attivato…