首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >身份验证和注册节点时问题-xmpp

身份验证和注册节点时问题-xmpp
EN

Stack Overflow用户
提问于 2016-07-27 13:58:34
回答 1查看 407关注 0票数 1

我试图通过node-xmpp将一个新用户从node.js注册到ejabberd,但是身份验证和注册事件既没有调用,也没有连接。

代码语言:javascript
复制
var clientXMPP = require('node-xmpp-client');
var serverXMPP = require('node-xmpp-server');
var c2s = new serverXMPP.C2SServer({
        jid: 'testuser@192.168.1.1',
        password: 'test'
    });

    c2s.on("connect", function(client) {
        console.log(client)
        c2s.on('register', function(opts, cb) {
            console.log('REGISTER')
            cb(false)
        })
        c2s.on("authenticate", function(opts, cb) {
            console.log("AUTH" + opts.jid + " -> " +opts.password);
            cb(false);
        });
        c2s.on('disconnect', function () {
            console.log('DISCONNECT')
        })
    });

如何在node-xmpp中注册新用户并进行身份验证。

EN

回答 1

Stack Overflow用户

发布于 2016-12-02 15:03:53

如果您只需要创建从nodejs到ejabberd服务器的新用户,请确保您在ejabberd中启用了带内注册。

您不需要node-xmpp-server,您只能使用node-xmpp-client。客户端库将帮助您与ejabberd管理员用户连接。

下面是一个例子

代码语言:javascript
复制
const Client = require('node-xmpp-client');

let admin = new Client({
    jid: '{adminJID}',
    password: '{adminPassword}'
});

// check for errors to connect with socket
admin.connection.socket.on('error', function (error) {
    // handle error
});

admin.on('online', function (data) {

    // Register stanza
    let stanza = new Client.Stanza('iq', {type: 'set', id: 'reg1', to: '192.168.1.1'})
        .c('query', {xmlns: 'jabber:iq:register'})
        .c('username').t('{username}').up()  // Give a new username
        .c('password').t('{password}')  // Give a new user's password

    admin.send(stanza); // send a stanza
});

// response stanzas
admin.on('stanza', function (stanza) {
    // check for error/success
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38604816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档