WordPress SSO y inicio de sesión de Patreon

¡Bien! He encontrado una solución alternativa que “soluciona” el problema de inicio de sesión con Patreon. A continuación, encontrarás las instrucciones. :slight_smile:

Necesitarás:

  • Cualquier plugin que proporcione un shortcode para mostrar un formulario de inicio de sesión (yo tengo WooCommerce instalado en mi sitio, así que usé el shortcode [woocommerce_my_account], que hace exactamente esto para usuarios no iniciados).
  • El plugin Members, que proporciona los shortcodes [members_logged_in] y [members_not_logged_in] para ocultar/mostrar contenido según si el usuario ha iniciado sesión o no. Puedes usar cualquier otro plugin que ofrezca una funcionalidad de shortcodes similar.
  • El plugin Shortcode Redirect.

La idea es crear una página especial que muestre un formulario de inicio de sesión (y el botón de inicio de sesión de Patreon) para usuarios no iniciados. Y si el usuario ya ha iniciado sesión, debe redirigir a la URL https://community.morevnaproject.org/session/sso?return_path=%2F.
(Obviamente, deberás reemplazar “community.morevnaproject.org” con tu propio dominio).

Mi página especial de inicio de sesión tiene el siguiente contenido:

[members_not_logged_in]
   [woocommerce_my_account]
   [patreon_login_button]
[/members_not_logged_in]
[members_logged_in]
   [redirect url='https://community.morevnaproject.org/session/sso?return_path=%2F' sec='0']
[/members_logged_in]

(puedes verlo en acción aquí: Log In / Register – Morevna Project)

Luego, todo lo que necesitas es configurar el plugin WP-Discourse para usar esa página en el SSO:

Cuando el usuario hace clic en el botón “Iniciar sesión” en Discourse, es redirigido a mi página especial de WordPress. Como el usuario no ha iniciado sesión, se muestra el formulario de acceso. Si el usuario hace clic en el botón “Iniciar sesión con Patreon”, es redirigido a Patreon para la autorización. Tras una autorización exitosa, es redirigido de nuevo a mi página especial. Dado que el usuario ya ha iniciado sesión, se activa el shortcode “redirect”:

[redirect url='https://community.morevnaproject.org/session/sso?return_path=%2F' sec='0']

…y el usuario es redirigido con éxito de nuevo a los foros de Discourse.

La parte session/sso?return_path=%2F al final de la URL es necesaria; de lo contrario, Discourse no reconocerá al usuario como iniciado sesión después de la redirección.

¡Eso es todo! Espero que esto ayude a otros usuarios que deseen tener SSO con WordPress e inicio de sesión con Patreon en su sitio web. :slight_smile: