Nuova restrizione api_username imposta?

Per la nostra applicazione, utilizziamo una chiave API globale da usare con tutti gli utenti. Stavamo usando un nome utente virtuale (utente inesistente) anonymous per rappresentare il contesto quando un utente non era autenticato. Questo ha funzionato per oltre 3 anni fino al 25/10/2020 alle 00:39 CT.

Ho mitigato il problema oggi creando un utente con quel nome utente. È stata implementata una restrizione questo fine settimana? Aggiornamento all’API?

Ciò ha compromesso la possibilità di visualizzare i commenti per tutti gli utenti pubblici, quindi un riscontro è molto apprezzato.

Grazie,

Justin

Ecco l’errore…

Non sono a conoscenza di alcuna modifica recente che abbia cambiato questo comportamento. Avevo l’impressione che funzionasse sempre così (mostrando un errore se l’utente non viene trovato). Questo è il codice che verifica se è possibile leggere il nome utente dalle credenziali API

E l’user qui sotto sarà nil perché non esiste, il che genererà il messaggio di errore sopra alla riga 131.

È stata apportata una modifica recente 23 giorni fa, ma non si applica alla tua situazione e restituisce comunque un messaggio di errore diverso.

Per sicurezza, ho configurato il mio Discourse locale per utilizzare questo commit di oltre un anno fa e ottengo lo stesso errore quando utilizzo un utente inesistente.

Un aspetto positivo che ne deriva è che ora abbiamo gli ambiti API, quindi se gli utenti hanno bisogno solo di accesso read, puoi aggiornare quella chiave API in modo che non sia più una chiave con accesso completo.

1 Mi Piace

Se si tratta di un sito pubblico, dovresti essere in grado di eseguire queste richieste dal tuo backend senza alcuna autenticazione per ottenere la vista anonima. Se i limiti di velocità diventano un problema, allora sì, dovrai utilizzare un vero utente fittizio.

1 Mi Piace

Un’altra cosa che mi è appena venuta in mente è l’impostazione del sito revoke api keys days. Poiché quell’utente non esiste, non aggiorniamo mai la data dell’ultimo utilizzo per quella chiave e scommetto che la chiave è stata revocata automaticamente? Tuttavia, non sono ancora sicuro di come sia stato possibile effettuare una richiesta valida in primo luogo.