Hola,
Estoy desarrollando un plugin muy específico para nuestra instancia de Discourse y tengo algunas preguntas.
En algún momento, el plugin tendrá que enviar una colección de imágenes de temas de Discourse a Imgur. La parte que recopila esas imágenes ya está lista.
Ahora estoy intentando autenticarme en la API de Imgur usando su flujo OAuth2. Ya he creado una interfaz de administración para el plugin que permite pulsar un botón para autorizar el plugin en tu cuenta de Imgur. Una vez que el usuario inicia sesión, se llama a una URL de devolución de llamada (configurada como mi instancia de Discourse y una ruta específica que creé en el plugin) con el token de acceso (véase el ejemplo).
http://localhost:3000/admin/plugins/plugin_name/callback#access_token=<token>&...
Mi pregunta es: ¿cómo puedo obtener este token de vuelta? No tengo idea de por dónde empezar.
Mi entendimiento es que, como el token se devuelve en un parámetro de hash, debe hacerse en el lado de JS. Intenté configurar un controlador y una ruta para mi URL de devolución de llamada, pero no logro entender cómo leer la URL (y la parte del hash en particular) desde allí. (No he encontrado nada útil en la documentación de Ember.js o en Stack Overflow). Intenté configurar diferentes escuchadores de eventos, pero nunca parecen activarse.
Mi segunda pregunta es: ¿dónde debería almacenar el token y el token de actualización? ¿Puedo guardarlo como una configuración del sistema desde el plugin? He oído hablar del PluginStore, pero solo es accesible en Ruby (lo que significaría crear un punto de conexión para que el cliente envíe estos tokens al servidor). Además, ¿es seguro desde el punto de vista de la seguridad?
¡Gracias!
Edición: Tenía un error tipográfico en el nombre de archivo de mi ruta, faltaba una ‘s’, por eso no se activó nada…