Come recuperare il valore di user_api_keys tramite API

Ciao @simon, grazie per la tua risposta. Permettimi di spiegare il nostro caso in modo più dettagliato.

Stiamo costruendo un’app mobile che si basa sulla logica backend degli endpoint di Discourse. Quando un utente accede tramite l’app, i dati di accesso vengono inviati all’API di Discourse tramite session.json, che restituisce un cookie. Questo cookie viene quindi utilizzato per reindirizzare il webview a /user-api-key/new, chiedendo all’utente di approvare l’autorizzazione. Dopo l’approvazione, il payload viene decifrato in chiavi API.

In questo caso, possiamo utilizzare le chiavi API come token globale all’interno dell’app mobile per accedere ad altri endpoint di Discourse. Tuttavia, quando l’utente effettua il logout, il token deve essere rimosso dallo stato globale in modo che non possa accedere a endpoint come la creazione di un nuovo argomento.

La mia domanda riguarda questo argomento: come possiamo verificare se un utente ha già user_api_keys e se sono ancora attivi? Se le chiavi esistono e sono attive, l’utente dovrebbe essere in grado di utilizzarle dopo l’accesso. In caso contrario, l’utente dovrà creare nuove user_api_keys, il che richiederebbe l’approvazione nel webview.

Questo è il problema principale che sto affrontando.

Un’altra soluzione che ho considerato, basata su un post di Come recuperare il valore delle chiavi API utente tramite API, è quella di archiviare le chiavi API nel database della nostra app mobile.

Ho anche fatto riferimento al post Genera chiave API utente senza approvazione utente - #2 di simon, che inizialmente ho consultato per l’implementazione delle chiavi API. Tuttavia, il problema rimane lo stesso: quando controllo /admin/api/keys, non possiamo recuperare il valore delle chiavi API già salvate nel database o ottenere le chiavi API per utente. Credo che, per questa implementazione, dovremmo archiviare le chiavi API nel nostro database.