Connexion Drupal dans une application externe

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,

Je travaille actuellement sur une application pour notre radio. Le site de la radio (www.lesonunique.com) est sous drupal 7 (ce n'est pas moi qui l'ai créé et je ne connais pas bien drupal).

L'application est visible en cliquant sur "Ecouter la radio" dans le site. C'est une page sur le serveur du site mais qui n'a rien à voir avec drupal (développement en html/javascript).

Sur le site drupal, nous avons un système de flag pour créer des playlists pour chaque utilisateur et nous voulons ajouter cette fonction sur l'application.

Mon problème est donc de pouvoir avoir une connexion des utilisateurs drupal sur mon application (qui est ensuite transposée sur iPhone/Android avec JeMbe). Est-ce possible de permettre la connexion à drupal dans cette application (et donc permettre ensuite les flag et récupération de l'ID utilisateur) ?

J'ai trouvé ceci mais n'arrive pas à l'utiliser correctement : http://yetanotherprogrammingblog.com/content/drupal-7-external-authentic...
Est-ce que ça peut être une solution à mon problème ?
Ou avez-vous une autre solution à me proposer ?

Merci d'avance.
Cordialement.

Vincent

Forum : 
Version de Drupal : 

s'il s'agit d'une application, je pense qu'il serait intéressant de voir du côté du module Services ou REST.

Du coup l'application peut se connecter (via l'api user/login), et récupérer des données.

C'est ce que j'utilise quand on doit faire communiquer des applications iPhone/Android et un site drupal

Bonjour,

J'arrive à me connecter avec mon nom d'utilisateur, cependant comment faut-il faire pour utiliser ensuite le csrf_token dans une requete ajax sur le site web ? (par exemple pour faire un flag) Et que faut-il farder en session pour la connexion ?
J'ai donc commencé avec un code comme celui-ci mais je suis un peu perdu pour la suite..

<?php
// Retrieve CSRF token
$curl_get = curl_init();
curl_setopt_array($curl_get, array(
   
CURLOPT_RETURNTRANSFER => 1,
   
CURLOPT_URL => 'http://vincentleveque.url.ph/drupal/services/session/token',
));
$csrf_token = curl_exec($curl_get);
curl_close($curl_get);
$csrf_header = 'X-CSRF-Token: ' . $csrf_token;

// REST Server URL
$request_url = 'http://vincentleveque.url.ph/drupal/services_oauth/user/login';

// User data
$user_data = array(
 
'username' => 'vince42',
 
'password' => 'xxxxxx',
);

// cURL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $request_url);
curl_setopt($curl, CURLOPT_POST, 1); // Do a regular HTTP POST
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $csrf_header));
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($user_data)); // Set POST data
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$response = curl_exec($curl);

print $response;
echo
"<br/>";
print
$csrf_token;
echo
"<br/>";
print
$csrf_header;

$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
// Check if login was successful
if ($http_code == 200) {
 
// Convert json response as array
 
$logged_user = json_decode($response);
}
else {
 
// Get error msg
 
$http_message = curl_error($curl);
  die(
$http_message);
}

print_r($logged_user);
?>

J'ai également réussi à créer un utilisateur, cependant, l'utilisateur créé apparait en status blocked. Comment puis-je le mettre par défaut en active ?

Merci d'avance.

Vincent

Bonjour,

J'ai également découvert DrupalGap, est-ce que cela pourrait correspondre à mes besoin ?
Est-ce compliqué à utiliser et à personnaliser (j'ai essayé et réussi à accéder à mon compte drupal et aux contenus avec DrupalGap, cependant pour le moment tout est regroupé dans l'application de base de DrupalGap) ?

Merci d'avance.
Cordialement.

Vincent