Permitir uso de API por usuarios regulares, no solo administradores

Reverse engineer the Discourse API dice

Todo lo que puedes hacer en el sitio también lo puedes hacer usando la API JSON.

Lamentablemente, https://docs.discourse.org/

Algunos puntos finales no requieren autenticación, casi cualquier otra cosa requerirá que estés autenticado. Para autenticarte, necesitarás crear una clave de API desde el panel de administración.

Es una lástima, porque hay muchos usos legítimos de la API
que los usuarios normales podrían aprovechar, no solo los administradores.

Por ejemplo, un cronjob mensual que un usuario podría configurar para descargar su
preferences.json en lugar de hacer clic en Descargar en Preferencias
(Backup/export/import Preferences).

Estoy diciendo que se necesita un cambio en el código fuente, para que pronto los usuarios de todo el mundo puedan acceder a la API de la Discourse local que están utilizando, para obtener sus datos personales, etc.

3 Me gusta

(Permite realizar solicitudes autenticadas dependiendo del ámbito)


Puede que quieras echar un vistazo a estos recursos, pueden ser muy útiles :slight_smile:

6 Me gusta

Update openapi.yml by jidanni · Pull Request #72 · discourse/discourse_api_docs · GitHub dice

Sin embargo, sin el apoyo de los administradores y un punto final aprobado en la configuración del sitio de claves de API de usuario, los “usuarios normales” todavía no pueden generar sus propias claves de API.

Esa respuesta es incorrecta. Cualquier usuario puede generar una clave API de usuario si la generación de claves API de usuario está habilitada para el nivel de confianza del usuario. Si no establece una redirección en la carga útil de la solicitud, se mostrará una respuesta codificada en base64 en el navegador que contiene la clave.

Consulte este tema para ver un script que muestra cómo se hace.

3 Me gusta

Estoy pensando en el caso predeterminado en el que la persona A ha instalado Discourse, y la persona B es solo un usuario simple en el Discourse de la persona A, y A no ha cambiado ninguna configuración de administrador, ¿podría B aún hacer mucho con la API?

La generación de claves de API de usuario está habilitada para todos los usuarios de forma predeterminada, y todo lo que puedes hacer a través de la interfaz web, puedes hacerlo a través de la API porque la interfaz web es solo un frontend de la API.

Personalmente, la uso en una extensión de Chrome que mantiene un recuento total de todas mis notificaciones no leídas en todas las instancias en las que tengo cuentas con algunas excepciones.

2 Me gusta

Si un usuario ya tiene una cuenta en una instancia de Discourse, debería poder usar la misma autenticación de cookies del navegador en cualquier solicitud de API que no sea del navegador.

2 Me gusta