Error al intentar autorizar tu cuenta con Patreon

Hola,

Estoy usando el plugin de Discourse para Patreon y me he encontrado con un problema. La integración funciona perfectamente para los usuarios que tienen la misma dirección de correo electrónico tanto en Discourse como en Patreon: pueden vincular sus cuentas y obtener el grupo/beneficios correctos.

Sin embargo, para los usuarios que tienen un correo electrónico diferente en Patreon y Discourse, cuando intentan vincular su cuenta de Patreon a través del botón “Conectar” en su perfil de Discourse, reciben este error después de autorizar en Patreon:

Lo sentimos, hubo un error al intentar autorizar tu cuenta con Patreon. Por favor, inténtalo de nuevo.

Esto sucede independientemente del dispositivo o navegador.

Importante: El plugin está funcionando correctamente; los usuarios con correos electrónicos coincidentes se emparejan y obtienen sus beneficios, por lo que el ID del cliente, el secreto y la URI de redirección están configurados correctamente.

Lo que he intentado:

  • Asignación manual de grupos (se elimina con la sincronización)
  • Volver a comprobar la configuración de todos los plugins y de la aplicación Patreon
  • Probar en múltiples dispositivos y navegadores

¿Hay alguna forma de permitir que los usuarios con correos electrónicos diferentes vinculen su cuenta de Patreon a su cuenta existente de Discourse, o al menos evitar este error?

¡Cualquier consejo o mejores prácticas sería muy apreciado!

¡Gracias!


2 Me gusta

Durante mucho tiempo hemos estado utilizando el plugin de Patreon con la API V1 para Discourse para iniciar sesión con Patreon. Esta es la configuración recomendada según la documentación oficial del plugin de Discourse de Patreon: https://meta.discourse.org/t/configure-patreon-integration-with-discourse/62380

Screenshot 2025-10-28 at 11.59.15 AM

Sin embargo, Patreon no ha admitido la V1 durante años. Se rompe constantemente, no se sincroniza completamente y, recientemente, simplemente dejó de funcionar para nosotros.

El problema es que cuando cambiamos a la API V2, que es compatible con Patreon, falla al autorizar a los usuarios. Cuando los usuarios intentan hacer clic en “Iniciar sesión con Patreon” y permiten que la API v2 se conecte a su cuenta de Patreon, reciben este error:

Lo sentimos, hubo un error al intentar autorizar tu cuenta con Patreon. Por favor, inténtalo de nuevo.

Y según la documentación oficial del plugin de Discourse de Patreon, se indica específicamente que la API v2 puede causar estos errores de autenticación. Lo que hace que la v2 sea inutilizable.

Screenshot 2025-10-28 at 12.05.06 PM

Afortunadamente, encontramos una solución para que la API v2 funcione. Esta solución debería agregarse a la documentación oficial porque en este momento la API v1, que es lo que se recomienda, está completamente rota.

Solución

La solución es crear un OAuth2 personalizado. En lugar de que los usuarios utilicen el botón “Iniciar sesión con Patreon” del plugin de Patreon, utilizarán un botón de inicio de sesión personalizado que hemos creado y que se autenticará con Patreon utilizando nuestro propio oauth.

Paso 1: Agrega estas URIs de redirección a Patreon.

  • https://<tu_enlace_servidor_discourse>/auth/oauth2_basic/callback

  • https://<tu_enlace_servidor_discourse>/auth/patreon/callback

Paso 2: En Discourse, ve a Admin > Inicio de sesión y autenticación > OAuth2 y configura lo siguiente:

  • oauth2_enabled: true

  • oauth2_client_id: <tu_id_cliente_Patreon>

  • oauth2_client_secret: <tu_secreto_cliente_Patreon>

  • oauth2_authorize_url: https://www.patreon.com/oauth2/authorize

  • oauth2_authorize_signup_url: (dejar en blanco)

  • oauth2_token_url: https://www.patreon.com/api/oauth2/token

  • oauth2_callback_user_id_path: (dejar en blanco)

  • oauth2_callback_user_info_paths: email

  • oauth2_token_url_method: POST

  • oauth2_callback_user_info_paths: email

  • oauth2_fetch_user_details: true

  • oauth2_user_json_url: https://www.patreon.com/api/oauth2/v2/identity?include=memberships&fields[user]=email,full_name,vanity

  • oauth2_json_user_id_path: data.id

  • oauth2_json_name_path: data.attributes.full_name

  • oauth2_json_username_path: data.attributes.vanity

  • oauth2_json_email_path: data.attributes.email

  • oauth2_json_email_verified_path: (dejar en blanco)

  • oauth2_email_verified: true (confiar en el proveedor para reducir las indicaciones) Si algunos mecenas carecen de correo electrónico, configúralo en false y espera una indicación de registro.

  • oauth2_email_verified: true

  • oauth2_send_auth_header: true

  • oauth2_send_auth_body: true

  • oauth2_debug_auth: true

  • oauth2_authorize_options: scope

  • oauth2_scope: identity identity[email] campaigns campaigns.members

  • oauth2_button_title: Iniciar sesión con Patreon

  • oauth2_allow_association_change: false (recomendado)

Paso 3: En los controles de inicio de sesión principales de Discourse, configura lo siguiente:

  • enable sso: false

  • patreon login enabled: false (evita dos botones de Patreon; mantén el plugin solo para sincronización)

  • allow new registrations: elige:

    • true para permitir que los nuevos mecenas creen cuentas
    • false para permitir que solo los usuarios existentes de Discourse inicien sesión
  • invite only: false mientras se prueba

  • must approve users: false mientras se prueba

  • session_cookie_domain: (en blanco)

Paso 4: En tu archivo yml de Discourse, configura lo siguiente para redes y hosts.

  • DISCOURSE_HOSTNAME en app.yml: <tu_enlace_servidor_discourse>

  • force_https: true

Paso 5: Reconstruye tu aplicación para implementar los cambios:

cd /var/discourse
./launcher rebuild app

Resultado:
Ahora deberías tener tu propio botón funcional de “Iniciar sesión con Patreon” de OAuth2 que realmente funciona en la API v2 y que sincroniza correctamente tus grupos de usuarios con Patreon.

1 me gusta

¡Buen trabajo, @watson! He movido tu solución a este tema por ahora y la he movido a Feature porque se trata de una mejora/corrección de cómo funciona el plugin oficial de patreon. Si una o dos personas más pueden replicar y confirmar que tus pasos funcionan, entonces creo que será necesaria una actualización de las instrucciones oficiales de patreon.