WordPress SSO e Login Patreon

Ok, encontrei uma solução alternativa que ‘resolve’ o problema com o login do Patreon. Confira as instruções abaixo. :slight_smile:

Você precisará de:

  • Qualquer plugin que forneça um shortcode para exibir o formulário de login (eu tenho o WooCommerce instalado no meu site, então usei o shortcode [woocommerce_my_account], que faz exatamente isso para usuários não logados).
  • Plugin Members, que fornece os shortcodes [members_logged_in] e [members_not_logged_in] para ocultar/mostrar conteúdo dependendo se o usuário está logado ou não. Você pode usar qualquer outro plugin que ofereça funcionalidade de shortcode semelhante.
  • Plugin Shortcode Redirect.

A ideia é criar uma página especial que exibe um formulário de login (e o botão de login do Patreon) para usuários não logados. E se o usuário estiver logado, ele deve ser redirecionado para a URL https://community.morevnaproject.org/session/sso?return_path=%2F.
(Obviamente, você desejará substituir “community.morevnaproject.org” pelo seu próprio domínio).

Minha página de login especial tem o seguinte conteúdo:

[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]

(você pode ver em ação aqui - Log In / Register — Morevna Project)

Em seguida, tudo o que você precisa fazer é configurar o plugin WP-Discourse para usar essa página para SSO -

Quando o usuário clica no botão “Log In” no Discourse, ele é redirecionado para minha página especial do WordPress. Como o usuário não está logado, o formulário de login é exibido. Se o usuário clicar no botão “Log in with Patreon”, ele será redirecionado para o Patreon para autorização. Após a autorização bem-sucedida, ele é redirecionado de volta para minha página especial. Como o usuário agora está logado, o shortcode “redirect” é ativado:

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

…e o usuário é redirecionado com sucesso de volta para os fóruns do Discourse.

A parte session/sso?return_path=%2F no final da URL é necessária; caso contrário, o Discourse não reconhecerá o usuário como logado após o redirecionamento.

É isso! Espero que isso ajude outros usuários que desejam ter SSO do WordPress com login do Patreon em seus sites. :slight_smile: