2016-08-29 1 views
10

Je suis nouveau pour ejabberd. Je veux ajouter un nouvel utilisateur sur le serveur via mon application iOS. I tried with many code qui a été trouver à partir de Google, mais personne ne peut résoudre mon problème.OS X ejabberd, Nouvel utilisateur enregistrer par XMPPFramework

Je mis module http://localhost:5280/admin/server/localhost/node/[email protected]/modules/

enter image description here Pour activer mod_register modifier également le fichier ejabberd.yml du dossier etc/ejabberd.

enter image description here

Et mes Ports à ejabberd @ en écoute localhost

enter image description here

Et je le code ci-dessous pour l'utilisateur de registre.

NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:register"]; 
     [query addChild:[NSXMLElement elementWithName:@"username" stringValue:@"syam"]]; 
     [query addChild:[NSXMLElement elementWithName:@"password" stringValue:@"[email protected]"]]; 
     NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"]; 
     [iq addAttributeWithName:@"type" stringValue:@"set"]; 
     [iq addAttributeWithName:@"id" stringValue:@"reg2"]; 
     [iq addChild:query]; 
     [APP_DELEGATE.xmppStream sendElement:iq]; 

     [APP_DELEGATE.xmppStream setHostName:@"0.0.0.0"]; 
     [APP_DELEGATE.xmppStream setHostPort:5222]; 
     NSError *error; 
     if (![APP_DELEGATE.xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]) { 
      UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting" 
                   message:@"See console for error details." 
                   delegate:nil 
                 cancelButtonTitle:@"Ok" 
                 otherButtonTitles:nil]; 
      [alertView show]; 
     } 

Mais n'a pas réussi et a eu lieu en dessous du message d'erreur.

<iq xmlns="jabber:client" from="[email protected]" to="[email protected]/15505992182228745748626" type="error" id="reg2"><query xmlns="jabber:iq:register"><username>syam</username><password>[email protected]</password></query><error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></service-unavailable><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">No module is handling this query</text></error></iq>

S'il vous plaît aidez-moi à résoudre mon problème.

Répondre

1

access: register signifie - seulement déjà les utilisateurs enregistrés peuvent accéder à mod_register (pour changer le mot de passe, par exemple). Vous devez avoir access: all pour permettre l'enregistrement. Et n'oubliez pas de protéger l'enregistrement avec CAPTCHA lorsque le serveur sera ouvert pour le réseau public (et dans ce cas cette simple implémentation de l'enregistrement dans XMPPFramework ne suffira pas)

mod_register est également activé pour votre virtualhost dans modules: bloc de votre configuration

+0

Merci pour votre réponse, j'ai déjà fait "accès: tous" mais n'a pas eu de succès et à propos de CAPTCHA son option mais selon votre suggestion je le ferai. – iPatel

+0

Réponse mise à jour pour mentionner les modules config – vitalyster

+0

Non, il n'y a pas de mod_register dans les modules: alors où est-ce que je me trompe? pouvez-vous me dire parce que ma configuration de fichier .yml est correcte. – iPatel