¿Nueva restricción de api_username?

Para nuestra aplicación, utilizamos una clave de API global que se usa con todos los usuarios. Estábamos usando un nombre de usuario virtual (usuario inexistente) anonymous para representar el contexto cuando un usuario no había iniciado sesión. Esto funcionó durante más de 3 años hasta el 25/10/2020 a las 00:39 CT.

Hoy mitigué el problema creando un usuario con ese nombre de usuario. ¿Se implementó alguna restricción este fin de semana? ¿Hubo una actualización de la API?

Esto rompió la capacidad de ver los comentarios de todos los usuarios públicos, así que cualquier respuesta será muy apreciada.

Gracias,

Justin

Aquí está el error…

No tengo conocimiento de ningún cambio reciente que haya modificado este comportamiento. Tenía la impresión de que siempre funcionó así (mostrando un error si no se encuentra al usuario). Este es el código que verifica si puede leer el nombre de usuario desde las credenciales de la API.

Y el user de abajo será nil porque no existe, lo que provocará el mensaje de error anterior en la línea 131.

Se realizó un cambio reciente hace 23 días, pero no aplica a tu situación y, de todos modos, devuelve un mensaje de error diferente.

Solo para verificar, configuré mi Discourse local para usar este commit de hace más de un año y obtengo el mismo error al usar un usuario que no existe.

Una buena cosa que surge de esto es que ahora tenemos ámbitos de API, así que si los usuarios solo necesitan acceso de lectura, puedes actualizar esa clave de API para que ya no sea una clave de acceso total.

1 me gusta

Si se trata de un sitio público, deberías poder realizar estas solicitudes desde tu backend sin ninguna autenticación para obtener la vista anónima. Si los límites de tasa se convierten en un problema, entonces sí, necesitarás usar un usuario dummy real.

1 me gusta

Otra cosa que acabo de pensar es la configuración del sitio revoke api keys days. Como ese usuario no existe, nunca actualizamos la fecha de último uso para esa clave y apuesto a que la clave fue revocada automáticamente. Sin embargo, aún no estoy seguro de cómo habrías podido realizar una solicitud válida en primer lugar.