Estou prestes a começar a trabalhar em um protótipo para um cliente - e um dos recursos necessários é a integração com um sistema interno de autenticação / registro de usuários.
Este sistema atuará como o banco de dados oficial do usuário e fornece uma interface RESTful para criar novos usuários e autenticar usuários válidos.
Eu preciso ser capaz de criar novos usuários no WP e, como parte desse processo, fazer uma chamada para a API de autenticação externa para criar / validar esse usuário.
Uma pessoa que é um usuário válido, mas não conhece o WP, deve poder fazer login para comentar, sem precisar se registrar no site do WP.
Uma pessoa logada no site em geral também deve fazer login automaticamente no WordPress.
Eu estou pensando o seguinte é o caminho a percorrer.
Para (1) - existe um gancho de registro que eu possa usar?
Para (2) - suponho que eu conecte o filtro de autenticação - ou seja, quando alguém tenta fazer login, intercepto isso, faço uma chamada para o sistema externo e, em seguida, processamos o login do WP ou os redirecionamos para o processo de registro em que ( 1) leva oer.
Para (3) - leia o cookie de login definido pelo site principal e prossiga com (2)?
Acho que também vou precisar inserir um registro nos usuários e na tabela usermeta.
Então, o que foi dito acima faz sentido - não pensei em algo. Alguém tem bons recursos para ajudar com isso (@hakre - vi que você fez algum trabalho nisso !!).
Atualizar
Então, ainda estou pensando um pouco sobre isso, basicamente estou tentando conectar o filtro de autenticação e usá-lo para:
- verifique se um cookie de logon para o site 'mestre' está definido e, se for, revalidar a API de autenticação e, se for válido, force um logon WP
wp_signon()
usando as informações contidas no cookie do site mestre (email e senha com hash) como credenciais para o WP - se o cookie não estiver definido, redirecione para a página de login do site principal e obtenha um login / inscrição e volte para a etapa 1
- se não houver um usuário WP quando existir um usuário autenticado do site mestre, crie-o e faça um logon 'transparente' (ou seja, para que o usuário não veja um formulário de login do WP)
Basicamente, quero ocultar totalmente o formulário de login do WP para usuários que estão apenas comentando, e mais tarde encontrar uma maneira de permitir que autores e administradores acessem diretamente.
Está indo bem devagar, aqui está o que eu poderia usar para ajudar:
o filtro de autenticação é o correto para usar? Ele não parece ser chamado em todas as situações que eu esperaria - por exemplo, o meta widget exibe links de logon / logout sem o disparo de gancho autenticado
posso
wp_signon()
retornar umWP_User
objeto (indicando sucesso), mas isso não afeta o status de logon - ou seja, o meta widget ainda seria exibido em "Login", mesmo após a atualização.
Qualquer ajuda recebida com gratidão :)