comment connecter un utilisateur de Drupal (ou d'obtenir de l'utilisateur actuellement connecté) à partir de Flex/Flash?
J'ai une application Flash qui est hébergée dans une page Drupal. Certaines parties de l'application Flash devrait être disponible pour tous les utilisateurs, mais certains ne devraient être à la disposition d'un utilisateur connecté. (Le rôle spécifique n'a pas d'importance, juste qu'ils sont tout utilisateur autorisé du site).
À partir de Flash, je peux détecter si l'utilisateur est connecté par grattage d'écran de l' "?q=user" de la page, mais c'est très fragile. Quelle est la "bonne" façon de faire cela? Je peux installer d'autres Modules si nécessaire, mais ils doivent être compatibles avec Drupal 6, pas 5.
De même, si aucun utilisateur n'est actuellement connecté, comment puis-je prendre un nom d'utilisateur et le mot de passe qu'ils m'apportent et les enregistre dans (ou déterminer que le mot de passe est mauvais)?
Vous devez vous connecter pour publier un commentaire.
La "bonne" solution
vous avez probablement envie de regarder quelque chose comme la module de services. fondamentalement, vous voulez exposer l'utilisateur de services pour votre flash app, de sorte que vous pouvez envoyer des demandes (via XML-RPC ou que ce soit la mise en œuvre de votre choix) pour obtenir de l'information comme "ce que l'accès ne l'actuel connecté en utilisateur", ou "de connexion de cet utilisateur avec le nom d'utilisateur x et le mot de passe y", etc...
Le faire vous-même rapidement la solution
si vous êtes familier avec le développement de modules, vous pouvez créer votre propre module rapidement pour obtenir exactement les fonctionnalités dont vous avez besoin, sans avoir à passer par un "vrai" couche de services web. voici un exemple rapide, la création d'un module appelé "myservices":
mettre ces deux fichiers dans un répertoire "myservices" dans votre répertoire de modules, l'activer, puis aller à
http://yourdomain.com/myservices/user
si vous êtes authentifié, il va tout simplement de retour
yes
, et si pasno
, etc... que vous pouvez trouver dans votre flash app.J'ai été en mesure de le faire à l'aide de Drupal dans le "système" et "utilisateur" services:
De cette écriture, la AMFPHP service n'est pas encore porté sur Drupal 6, j'ai donc utilisé XMLRPC. Pour utiliser XMLRPC à partir d'ActionScript, j'ai utilisé la bibliothèque d'aide à as3-rpclib. Cette bibliothèque a été écrite pour ActionScript2, afin de l'utiliser avec Flex3 m'a obligé à le patcher, comme décrit à la cette page (faites défiler la page et de recherche pour un commentaire le 10 Mai 2008, par "jameshyu").
Une fois toutes ces conditions préalables sont pris en charge, vous pouvez vérifier l'utilisateur actuellement connecté (le cas échéant) et/ou une ouverture de session d'un utilisateur avec un code comme suit.
Voici le module qui fait met en œuvre la connexion:
et voici un exemple d'utilisation:
Je sais que c'est un long chemin à partir de quand ce post a été à l'origine, mais si vous êtes toujours intéressé par ce et n'a jamais pris le temps de faire des recherches beaucoup, j'ai compris la façon de traiter avec succès une connexion par le biais d'un document flash. (Celui qui est intégré ou externe pour cette question.) Il n'a même pas besoin d'AMFPHP à être installé sur le système. (Ce qui est bien parce que la dernière que j'ai vérifié le module de services qui AMFPHP dépend n'a pas encore un état recommandé.)
J'ai créé une page de démonstration ici: AS3 Login Page de Démonstration
Vous pouvez de connexion et de déconnexion, et il permet de détecter si vous êtes déjà connecté. C'est toujours un travail en cours, mais la plupart des choses que vous avez besoin est aménagé pour vous.
Si vous voulez voir la documentation et souhaitez qu'une copie de la source de tout cela est disponible ici: http://www.andrewnprice.com
J'espère que ça aide. Je doit faire une mise à jour de la démo dans le courant de la semaine prochaine, alors revenez si vous voulez quelques autres fonctionnalités que j'ai oublier d'ajouter dans le post.