Il ya quelques jours , nous avons vu comment créer un simple chat avec FMS .

Aujourd'hui, à la demande populaire, nous allons ajouter la première amélioration de notre application. Par défaut, nous avons conçu un chat public, n'importe qui peut se connecter. Cependant, on peut souhaiter que seuls nos utilisateurs enregistrés peuvent l'utiliser. Nous devons alors que nos clients puissent s'authentifier sur notre base de données, mais nous ne pouvons pas laisser cette responsabilité entre les mains de la demande du client, n'importe qui peut faire n'importe quoi vous vous connectez à notre serveur sans nécessiter d'authentification.

FMS ne peut pas se connecter à une base de données, et non pas sa fonction, mais de plus en plus de gens demandent pour cette fonction et il est prévu que dans la prochaine version (FMS4), il ya toute évolution. Quel que soit le cas, il n'y a pas de méthodes natives d'accéder à des bases de données de sorte que vous ne pouvez utiliser que c'était une fois Flash Remoting et services sont aujourd'hui le RPC sous AMF , la méthode standard d'accès aux données à partir d'applications Flash ( avec la permission de webservices SOAP). Au fil du temps ils sont apparus dans différentes versions linguistiques d'utiliser le protocole AMF de la protection de Macromedia (maintenant Adobe), mais certainement l'un des pionniers était amfphp , qui permet aux applications Flash communiquer avec le serveur via PHP .

AMF est un format de sérialisation de données et Remote Method Invocation et est indépendant de la langue que le serveur fonctionne tout simplement doivent répondre aux spécifications. FMS, comment pourrait-il en être autrement, vous pouvez communiquer avec notre serveur avec ce protocole AMF et c'est précisément ce que nous allons utiliser pour authentifier nos utilisateurs:

dibujo1 Primeros pasos con Flash Media Server (2), autentificando usuarios del chat R.I.A. fms flex flash chat autentificar

Le processus est beaucoup plus simple qu'il n'y paraît.

Commencez par télécharger amfphp sur le site officiel. Décompressez-le et téléchargez le dossier "amfphp" à votre serveur sur l'itinéraire que vous voulez. Vous avez quel est le cerveau du système prêt pour le test Vérifiez l'URL:

  http://tuservidor/amfphp/gateway.php 

Si tout va bien, le navigateur tester maintenant des services, un outil essentiel pour tester vos méthodes à distance:

  http://tuservidor/amfphp/browser/ 

Si vous n'avez pas vu une erreur, c'est que tout va bien. Voyons comment créer votre service d'authentification.

Dans le dossier amfphp vous avez téléchargé le dossier de votre serveur trouver des services. Créer en son sein un nouveau répertoire avec le nom de votre application, comme le chat. Maintenant créer au sein de cette classe de dossier et les méthodes qui sont nécessaires pour créer le service d'authentification. Par exemple, dans mon cas, je chat.php:

  1. <?
  2. classe de chat {
  3. ; function Chat ( ) { var $ conn; fonction de chat () {
  4. = mysql_connect ( "host" , "usuario" , "clave" ) ; $ This -> conn = mysql_connect ("host", "user", "password");
  5. 'db' , $this -> conn ) ; mysql_select_db ('db', $ this -> conn);
  6. }
  7. $nick , $pass ) { fonction login ($ nick, $ pass) {
  8. ( "select * from usuarios where nick='$nick' AND pass='$pass'" ) ; $ Rs = mysql_query ("SELECT * FROM utilisateurs où nick = '$ nick» ET pass =' $ pass '");
  9. mysql_num_rows ( $rs ) > 0 ) if ( mysql_num_rows ($ rs)> 0)
  10. ; return 1;
  11. autre
  12. ; retour 0;
  13. }
  14. }
  15. >

Simple n'est-ce pas?. Notre classe a une méthode de connexion qui nous dit si le couple pseudo / clé existe dans notre base de données. Évidemment, ce n'est qu'un exemple, dans votre application ne la classe avec toutes les méthodes et la logique dont vous avez besoin.

Si vous revenez à présent le navigateur du service est affiché, vous verrez la nouvelle classe d'applications de chat que vous avez créé. Si vous y accédez, vous pouvez tester la méthode de connexion en passant les paramètres requis. Simplicité pure.

Nous avons la logique d'authentification de la liste. Comment pouvons-nous dire maintenant que le FMS utilisation? Nous avons modifié le fichier main.asc nous avions fait dans le chapitre précédent , avant d'accepter la connexion authentifier un utilisateur.

  1. ( client, nick, clave, sala ) { application. onConnect = function (client, surnom, mot de passe, chambre) {
  2. ; var valide = 1;
  3. i in this . userList ) { for (i in This. userList) {
  4. String ( this . userList [ i ] . nick ) . toLowerCase ( ) == String ( nick ) . toLowerCase ( ) ) { if (String (this. userList [i]. surnom). toLowerCase () == String (Nick). toLowerCase ()) {
  5. valide = 0;
  6. break;
  7. }
  8. }
  9. valido== 1 ) { if (valide == 1) {
  10. ( "http://tudominio/amfphp/gateway.php" ) ; myServer var = NetServices de createGatewayConnection ("http://tudominio/amfphp/gateway.php.»);
  11. ( "chat.Chat" , this ) ; var service = myServer getService ("chat.Chat", this).;
  12. ( email, clave ) ; . CallServer var = service de connexion (email, mot de passe);
  13. = function ( result ) { Cette login_result = function. (Result) {
  14. / / Trace ("LOGIN Résultat" + result);
  15. result> 0 ) { if (result> 0) {
  16. . uid ; client uid = cet uid..;
  17. client nick = nick.;
  18. . client chambre = chambre;
  19. ( client ) ; . Cette AcceptConnection (client);
  20. [ client. uid ] = client; Cette userList [uid client.] = Client.;
  21. . setProperty ( client. uid , client ) ; .. Ce users_so setProperty (client. uid, client);
  22. #000660"><strong>*** Entra " + client.nick + " ***</strong></font>"; var msg = "<font color =" # 000660 "> <strong> *** Entrée" + client.nick + "*** </ strong> </ font>";
  23. . send ( "onMsgSend" , msg ) ; . Cette chat_so envoyer ("onMsgSend", msg).;
  24. "onUserid" , null , client. uid , client. nick ) ; . client put ("onUserid", null, uid client, client surnom..);
  25. ++; Cette uid + +.;
  26. { Else {}
  27. Object ( ) ; var erreur = new Object ();
  28. ; err message = "Email ou mot de passe incorrect".;
  29. client, err ) ; . demande rejectConnection (client, err);
  30. }
  31. }
  32. { Else {}
  33. Object ( ) ; var erreur = new Object ();
  34. ; err message = "Il existe déjà un utilisateur avec ce nick".;
  35. err. message ) ; trace (un message err.);
  36. client, err ) ; . demande rejectConnection (client, err);
  37. }
  38. }

C'est aussi simple que d'ajouter le nom d'utilisateur et mot de passe de vérification de notre client. Nous avons mis l'url de notre passerelle (amfphp) et appeler la méthode de connexion avec les données correspondantes. La chose la plus importante est de savoir comment nous obtenons les données renvoyées par la méthode. L'appel est asynchrone, sans activité paralytique attente d'un résultat, mais l'activité reste en attente de la réponse. Cela devait être une fonction définie nombremetodoremoto_Result, dans notre cas login_result comme la connexion à distance est la méthode que nous appelons. Lorsque vous appelez cette fonction savoir si l'utilisateur existe dans notre base de données, que nous acceptons votre connexion à discuter, ou il a refusé.

Comme vous l'avez vu, il est très facile d'appeler des méthodes de FMS afin d'améliorer les chances de votre demande et vous pourrez utiliser des bases de données et systèmes de pointe et toujours très simple.

Je vous ai donné des indices comment faire, le reste est laissé à votre imagination.