OS X ejabberd, Регистрация нового пользователя по XMPPFramework

Я новичок в ejabberd. Я хочу добавить нового пользователя на сервер через приложение iOS. Я попытался с большим количеством кода, который был найден из Google, но никто не может решить мою проблему.

Я устанавливаю модуль в http://localhost:5280/admin/server/localhost/node/[email protected]/modules/

введите описание изображения здесь Для включения mod_register также измените файл ejabberd.yml в папке etc/ejabberd.

введите описание изображения здесь

И мои прослушиваемые порты на ejabberd @localhost

введите описание изображения здесь

И я использовал ниже код для пользователя регистрации.

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];
        }

Но не получил успеха и появился ниже сообщения об ошибке.

<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>

Пожалуйста, помогите мне решить мою проблему.

Ответ 1

access: register означает, что только зарегистрированные пользователи могут получить доступ к mod_register (например, для смены пароля). Для регистрации необходимо иметь access: all. И не забудьте защитить регистрацию с помощью CAPTCHA, когда сервер будет открыт для общедоступной сети (и в этом случае простая реализация регистрации в XMPPFramework будет недостаточной)

Также неясно, включен ли mod_register для вашего виртуального хоста, проверьте наличие mod_register в блоке modules: вашей конфигурации