Interaction Drupal et application sur autre serveur

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Sur un serveur (serveur 1), je dispose de Drupal et sur un autre (serveur 2), il y a une autre application PHP.
Pour des raisons techniques, les deux applications ne peuvent fonctionner sur le même serveur.

Or, j'aimerais lier l'application depuis l'interface Drupal. De plus, j'aimerais récupérer le nom de l'utilisateur sur cette application.

Cependant, si je mets le code suivant sur le serveur 2 et que j'y accède depuis Drupal, le nom de l'utilisateur est vide :

<?php
    
global $user;
    
$echo $user->name;
?>

Comment pourrais-je récupérer ce nom d'utilisateur ?

Merci d'avance.
@+

Forum : 

Ca dépend de la complexité de ce que tu souhaites faire. Basiquement, si j'ai bien compris, l'architecture est la suivante:

Client <--> Serveur 1 (Drupal) <--> Serveur 2

Lorsque le client fait une requête, le serveur 1 appelle un page sur le serveur 2. Donc en fait, fondamentalement, Serveur 1 est le client de Serveur 2: si tu veux que Serveur 2 ai accès à des données de Serveur 1, il faut donc lui les fournir (en GET ou en PUT). Par exemple, en GET cela peut donner la requête suivante:

http://server2/monappli.php?user=($user->uid)

Si tu veux quelque chose de plus compliqué, avec des requêtes possibles dans les deux sens, le plus simple et efficace est d'exporter des fonctions sur le Serveur 1 en XML-RPC. Ca se fait très bien avec Drupal (il y a un hook spécialisé la dedans). Ainsi le Serveur 2 pourra faire des requêtes sur le Serveur 1 en retour.

  • DamZ

Merci beaucoup pour ta réponse.

La première possibilité me semble plus simple dans la mesure où je n'ai jamais utilisé XML-RPC.

Tu as bien compris ma requête mais je me pose une question :
si je choisis la première méthode avec GET par exemple, comment garantir que l'utilisateur vient bien de drupal. Car je dois bien évidemment faire passer le nom de l'utilisateur en paramètre. Mais quel autre paramètre (surement codé) pourrais-je utiliser afin de garantir la provenance réelle depuis drupal ?

Merci d'avance. :)