Mon site doit s'intégrer à un logiciel tiers, qui vivra sur son propre sous-domaine, hébergé par la société de logiciels. Je dois fournir aux développeurs tiers un point de terminaison qu'ils peuvent utiliser pour effectuer des appels API (vers mon site wordpress) afin de permettre aux utilisateurs de mon site d'accéder au sous-domaine.
L'autre site doit authentifier les utilisateurs de mon site via une sorte d'API.
Je ne sais pas par où commencer, mais mon sentiment est que cela a été compris par des gens plus intelligents que moi. Merci d'avance!
api
authentication
customization
single-sign-on
emersonthis
la source
la source
Réponses:
Problèmes de script intersite
Vous ne pouvez pas transférer les cookies d'authentification WP entre les domaines. Vous ne voulez pas non plus stocker de mots de passe en texte brut pour vous connecter par programme à une autre installation WP. Ainsi, vous devrez demander aux utilisateurs de se connecter à WordPress, puis d'accéder à leur état de connexion via un point de terminaison API à partir du site tiers. Cela permet à WordPress de gérer toute l'authentification. Il est assez sécurisé car un utilisateur devra se connecter physiquement du côté WP pour que le point de terminaison API serve les données au tiers.
Créer un point de terminaison API
Consultez cet article que je viens d'écrire ici: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Vous pouvez également voir la démonstration du code ici: https://gist.github.com/2982319
Vous devrez trouver la logique pour les besoins de votre propre application, mais cela vous permettra de créer un point de terminaison où vous pourrez servir tout ce que vous voulez du côté de WordPress.
Puisque vous utilisez WordPress comme site d'authentification, vous pouvez utiliser une vérification comme is_user_logged_in (). S'ils sont connectés, renvoyez un objet utilisateur au tiers avec toutes les informations dont ils ont besoin.
Connexion à partir du tiers
À partir du tiers, ils peuvent créer un lien vers votre page de connexion pour une expérience transparente en utilisant la variable de requête redirect_to. Une fois connecté, il les retransmettra sur le site tiers.
Connexions à distance
Si vous devez connecter des utilisateurs à WordPress à partir d'un site tiers, vous pouvez utiliser certaines fonctions WP simples répertoriées sur ce site: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
Vous aurez certainement besoin d'utiliser un secret partagé et de créer des hachages basés sur le temps pour garder les choses en sécurité. En gros, voici à quoi cela ressemblerait:
Un tiers envoie une demande avec un horodatage et un jeton généré par un secret partagé:
L'installation WordPress reçoit la demande:
la source
counter
au lieu detime()
et de le transmettre avec la demande. Les deux côtés gardent le dernier compteur passé et quand api reçoit une demande avec un nouveau compteur, il vérifie que le nouveau est supérieur au dernier. De cette façon, un retard ne peut pas faire de mal.