Не удается зарегистрировать новую учетную запись пользователя в Jabberd с помощью XMPPFramework

Я пробовал некоторый код для регистрации нового пользователя с помощью XMPPFrameWork в IOS.

(void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement *)
error{ 
NSLog(@"Sorry the registration is failed");
NSLog(@"error: %@", error);
}

Вот трассировка ошибки:

 XmppDemo[314:26961] Did not authenticate 2015-12-03 08:54:30.331 
 XmppDemo[314:26961] Sorry the registration is failed 2015-12-03 08:54:30.332 
 XmppDemo[314:26961] error: <iq xmlns="jabber:client" from="azlnx001" type="error">
                  <query xmlns="jabber:iq:register">
                    <username>26</username>
                    <password>123</password>
                  </quer??y>
                  <error code="403" type="auth">
                    <forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></forbidden>
                  </error>
                </iq>

Связанный:

(void)xmppStream:(XMPPStream *)sender didNotAuthenticate: 
    (NSXMLElement *)error; { 
      NSLog(@"Did not authenticate"); NSError * err = nil; 
      if ( [self.xmppStream supportsInBandRegistration]) 
        { if(![self.xmppStream registerWithPassword:@"123" error:&err]) 
          { NSLog(@"Error registering: %@", err); } 
        } 
      } 

Может кто-нибудь помочь мне?


person Bob Zheng    schedule 02.12.2015    source источник
comment
Добро пожаловать в StackOverflow. Пожалуйста, не используйте комментарии для добавления информации или иного улучшения вашего вопроса. Пожалуйста, отредактируйте его. На этот раз я внес изменения, но вы должны пересмотреть их, чтобы ваш вопрос был более ясным.   -  person APC    schedule 06.12.2015
comment
ты многому меня учишь, большое спасибо.   -  person Bob Zheng    schedule 08.12.2015


Ответы (2)


Скорее всего, регистрация пользователя не включена. Вы можете включить mod_register, если хотите, как описано в документации ejabberd: http://docs.ejabberd.im/admin/guide/configuration/#modregister

Обратите внимание, что это может создать риск спама, поскольку, таким образом, будет автоматизировать создание учетной записи.

person Mickaël Rémond    schedule 07.12.2015
comment
ejabberd.yml доступ: пользователь: max_user_sessions: все: 10 регистрация: все: разрешить регистрация_время ожидания: бесконечность регистрация_от: разрешить: все - person Bob Zheng; 08.12.2015
comment
Как включить mod_register? - person Bob Zheng; 08.12.2015
comment
ejabberd.yml: ## Только клиенты на сервере могут регистрировать учетные записи ## ip_access: trust_network отключите это: ##ip_access:trusted_network. я могу зарегистрировать нового пользователя с XMPPFramework в клиенте iOS. - person Bob Zheng; 08.12.2015

ejabberd.yml

##
## Only clients in the server machine can register accounts
##
 ip_access: trusted_network

Что такое доверенная_сеть? я не знаю, как настроить trust_network, поэтому я отключу его:

##
## Only clients in the server machine can register accounts
##
## ip_access: trusted_network 

мое приложение может зарегистрировать нового пользователя. отлично.

person Bob Zheng    schedule 08.12.2015