Oauth2-basic plugin y pkce

Hola a todos,

Soy nuevo en el plugin oauth2-basic y, después de leer la documentación y el código fuente, no he encontrado respuesta a mi pregunta.

  • ¿El plugin oauth2-basic soporta PKCE?
  • Si es así, ¿cómo puedo habilitarlo?
  • Si no, ¿cómo podría modificar el código del plugin oauth2-basic para usar PKCE?

La página de GitHub de Omniauth README indica que debería poder establecer la opción pkce en true en mi estrategia de Omniauth. Sin embargo, he intentado realizar este cambio en el código del plugin oauth2-basic y no se está enviando ningún code challenge a mi authorize_url. ¿Alguna sugerencia?

Gracias de antemano

Reabriendo esto ya que una comunidad a la que ayudo solicita soporte para PKCE.

Antes de que me preguntaran al respecto, aún no había visto nada sobre esto, pero al revisar la documentación al respecto, parece que el principal impulsor de esto son las aplicaciones nativas y las SPA:

Aplicaciones nativas

  • No pueden almacenar de forma segura un secreto de cliente. La descompilación de la aplicación revelará el secreto de cliente, que está vinculado a la aplicación y es el mismo para todos los usuarios y dispositivos.
  • Pueden utilizar un esquema de URL personalizado para capturar redirecciones (por ejemplo, MyApp://), lo que podría permitir que aplicaciones maliciosas reciban un código de autorización de su servidor de autorización.

Aplicaciones de una sola página

  • No pueden almacenar de forma segura un secreto de cliente porque todo su código fuente está disponible para el navegador.

Ninguna de las cuales es aplicable a esta situación; es el servidor de Discourse el que tiene el secreto.

Animated GIF