¿Cómo puedo obtener cookies para un usuario o una 'user-api-key' sin requerir interacción del usuario o redirecciones del navegador?

Actualmente estoy desarrollando una aplicación que utiliza Discourse únicamente como API. La nueva característica está relacionada con los mensajes privados (PM), donde estamos utilizando private_messages. El problema aquí es que necesitamos recibir actualizaciones de estos temas privados (private_messages) a través de MessageBus, y actualmente nuestro método de autenticación con Username: user.username y Api-Key: admin_api_key no funciona exclusivamente para este caso de MessageBus y temas privados; funciona para todo lo demás.

Por lo tanto, necesitamos una forma de obtener e inyectar cookies en nuestro frontend al llamar a MessageBus, o crear una ‘user-api-key’ y un usuario en lugar de la clave de API. Pero necesitamos hacer esto solo a través de la API, ya que nuestro backend se comunicará con el backend de Discourse y aprovisionará todo. El frontend solo será responsable de recibir la cookie o la user-api-key y agregarla a la solicitud de MessageBus.

1 me gusta

Supongo que esto es un error tipográfico y te refieres a los MP (Mensajes Privados)? Los DMs están relacionados con chat.

1 me gusta

¡Oh, genial!

No hay un endpoint de API HTTP para crear objetos UserApiKey para otros usuarios. El endpoint /user-api-key solo crea claves para el usuario que ha iniciado sesión.

Usar MessageBus sería útil, pero no estoy seguro de cómo evitar los problemas de autenticación. Podrías necesitar hacer polling y/o depender de webhooks cuando se actualicen los MP (Mensajes Privados).

¡Sí! Los temas con archtype: private_message

1 me gusta