Meu site precisa se integrar a um software de terceiros, que viverá em seu próprio subdomínio, hospedado pela empresa de software. Preciso fornecer aos desenvolvedores de terceiros um ponto de extremidade que eles possam usar para fazer chamadas de API (para o meu site wordpress) para permitir que os usuários do meu site acessem o subdomínio.
O outro site precisa autenticar usuários do meu site por meio de algum tipo de API.
Não sei por onde começar, mas meu senso é que isso foi descoberto por pessoas mais inteligentes que eu. Desde já, obrigado!
api
authentication
customization
single-sign-on
emersonthis
fonte
fonte
Respostas:
Problemas de script entre sites
Você não pode transferir cookies de autenticação WP entre domínios. Você também não deseja armazenar senhas de texto sem formatação para efetuar logon em outra instalação do WP programaticamente. Portanto, é necessário que os usuários efetuem login no WordPress e, em seguida, acessem o status de login por meio de um endpoint da API a partir do site de terceiros. Isso permite que o WordPress lide com toda a autenticação. É bastante seguro, pois o usuário terá que efetuar login fisicamente no lado do WP para que o ponto de extremidade da API sirva os dados para terceiros.
Crie um ponto de extremidade da API
Confira este artigo que acabei de escrever aqui: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Além disso, você pode ver a demonstração do código aqui: https://gist.github.com/2982319
Você terá que descobrir a lógica para suas próprias necessidades de aplicativos, mas isso permitirá que você crie um terminal em que possa servir o que quiser do lado do WordPress.
Como você está usando o WordPress como site de autenticação, pode usar uma verificação como is_user_logged_in (). Se eles estiverem conectados, retorne um objeto de usuário para terceiros com as informações necessárias.
Fazendo logon de terceiros
De terceiros, eles podem criar um link para sua página de login para uma experiência perfeita usando a consulta redirect_to var. Uma vez logado, ele os passará de volta para o site de terceiros.
Logins remotos
Se você precisar logar usuários no WordPress a partir de um site de terceiros, poderá usar algumas funções WP simples listadas neste site: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
Você definitivamente precisará usar um segredo compartilhado e criar hashes baseados em tempo com esse segredo para manter as coisas seguras. Basicamente, aqui está o que seria:
Terceiros enviam solicitação com um carimbo de data e hora e um token gerado por um segredo compartilhado:
A instalação do WordPress recebe a solicitação:
fonte
counter
vez detime()
e passá-lo com a solicitação. Ambos os lados mantêm o último contador passado e, quando a API recebe uma solicitação com um novo contador, verifica se o novo é maior que o último. Dessa maneira, um atraso não pode causar nenhum dano.