首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试Stanza.js身份验证?

如何调试Stanza.js身份验证?
EN

Stack Overflow用户
提问于 2021-02-18 05:21:34
回答 3查看 139关注 0票数 0

我当前正在尝试使用Stanza.js https://github.com/legastero/stanza设置XMPP客户端

我有一个工作的服务器,它接受来自Gajim客户端的连接,但是当尝试使用Stanza.js client.connect方法连接时,服务器打开一个websocket连接,但没有身份验证事件,或者启动的会话被触发。

服务器日志不显示任何明文密码身份验证尝试。

我如何才能实际看到任何节日志来调试此问题?

代码语言:javascript
复制
import * as XMPP from 'stanza';

const config = { credentials: {jid: '[jid]', password: '[password]'}, transports: {websocket: '[socketurl]', bosh: false} };
const client = XMPP.createClient(config)
client.on('raw:*', (data) => {
    console.log('data', data)
})

client.connect();

onconnect事件确实会触发,但这是唯一会触发的事件。有没有一种方法可以手动触发文档中没有提到的身份验证?

EN

回答 3

Stack Overflow用户

发布于 2021-02-23 06:34:55

原始事件处理程序应该能够为您提供所需的日志记录-但在您的代码示例中,您没有正确地调用它。尝试以下操作。

代码语言:javascript
复制
client.on('raw:*', (direction, data) => {
    console.log(direction, data)
})

作为参考,原始数据事件处理程序的回调的docs状态为

代码语言:javascript
复制
(direction: incoming | outgoing, data: string) => void

因此,您要查找的数据在第二个参数中,但是您的回调只有一个参数(只有一个方向字符串“传入”或“传出”,尽管您已将该参数命名为" data ")。

一旦您修复了日志记录,我希望您将看到流立即终止,并出现流错误。您的配置不正确。jid和password应该是顶级字段。查看节示例代码。对于createClient的选项-没有凭证对象。尝试以下操作:

代码语言:javascript
复制
const config = { jid: '[jid]', password: '[password]', transports: {websocket: '[socketurl]', bosh: false} };

由于您的用户名和密码隐藏在不正确的凭据对象后面,因此stanza.io看不到它们,您实际上是在尝试不使用用户名和密码进行连接,因此甚至不会尝试进行身份验证。

票数 1
EN

Stack Overflow用户

发布于 2021-04-01 03:59:15

这个问题恰好是由配置问题引起的。

jabber服务器使用的是普通身份验证。在客户端定义文件中添加额外的一行会有所帮助。此外,添加client.on('*',console.log)可提供更完整的服务器日志。

代码语言:javascript
复制
client.sasl.disable('X-OAUTH2')
票数 1
EN

Stack Overflow用户

发布于 2021-02-19 21:03:00

我如何才能实际查看任何节日志来调试此问题?

如果连接未加密,则可以使用以下工具嗅探XMPP通信

代码语言:javascript
复制
sudo tcpflow -i lo -Cg port 5222

您可以强制ejabberd不允许加密,这样您的客户端就不会使用加密,您就可以读取网络流量。

或者,您可以在ejabbed.yml中设置此设置,但它可能会生成大量日志消息:

代码语言:javascript
复制
loglevel: debug
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66250139

复制
相关文章

相似问题

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