Hola @simon, gracias por tu respuesta. Permíteme explicar nuestro caso con más detalle.
Estamos creando una aplicación móvil que depende de la lógica del backend de los puntos finales de Discourse. Cuando un usuario inicia sesión a través de la aplicación, los datos de inicio de sesión se envían a la API de Discourse a través de session.json, que devuelve una cookie. Esta cookie se utiliza luego para redirigir la webview a /user-api-key/new, lo que solicita al usuario que apruebe la autorización. Después de la aprobación, la carga útil se descifra en claves API.
En este caso, podemos usar las claves API como un token global dentro de la aplicación móvil para acceder a otros puntos finales de Discourse. Sin embargo, cuando el usuario cierra sesión, el token debe eliminarse del estado global para que no pueda acceder a puntos finales como la creación de un nuevo tema.
Mi pregunta proviene de este tema: ¿cómo podemos verificar si un usuario ya tiene user_api_keys y si todavía están activas? Si las claves existen y están activas, el usuario debería poder usarlas después de iniciar sesión. Si no, el usuario necesitará crear nuevas user_api_keys, lo que requerirá aprobación en la webview.
Este es el principal problema al que me enfrento.
Otra solución que consideré, basada en una publicación de Cómo recuperar el valor de las claves API de usuario a través de la API, es almacenar las claves API en la base de datos de nuestra aplicación móvil.
También me referí a la publicación Generar clave API de usuario sin aprobación del usuario - #2 de simon, que inicialmente revisé para la implementación de claves API. Sin embargo, el problema sigue siendo el mismo: cuando verifico /admin/api/keys, no podemos recuperar el valor de las claves API ya guardadas en la base de datos ni obtener claves API por usuario. Creo que, para esta implementación, necesitaríamos almacenar las claves API en nuestra propia base de datos.