问题标签 [ejabberd-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
263 浏览

erlang - ejabberd 17.07 中的自定义身份验证模块

在 ejabberd 16.02 中,我有一个自定义身份验证模块在工作。它被命名为ejabberd_auth_component.beam,并放置在正确的目录中。然后,我auth_method: component在配置中设置。然后 ejabberd 将使用自定义模块(前提是它实现了正确的功能)。

这不再适用于 ejabberd 17.07。ejabberd 现在忽略auth_method: component为无效的选项类型。有没有办法让自定义身份验证模块在 17.07 中工作?我一直在阅读更新后的代码库,但还没有找到添加新身份验证方法的方法。

0 投票
1 回答
426 浏览

ejabberd - Ejabberd oauth 未生成令牌

有人可以解释一下如何配置 ejabberd rest api 支持,我找不到任何足够的资源。

我正在使用 linux (ubuntu 16.04),所以到目前为止我已经完成了 apt-get -y install ejabberd 并且请告诉我是否需要更改配置文件 /etc/ejabberd/ejabberd.yml 文件。

好吧,我按照文档中的说明进行了尝试,但是当我在 http://ipaddress:5280/oauth/authorization_token?response_type=token&client_id=localhost&redirect_uri=http://www.razrcorp.com/&scope输入用户、服务器和密码时=get_roster+sasl_auth

我可以看到授权请求应用程序本地主机想要访问范围 get_roster sasl_auth

但是当我从用户填写 - test@localhost 服务器 - ipaddress 密码 - 测试

它重定向到http://ipaddress:5280/oauth/authorization_token并响应此页面不工作 ipaddress 没有发送任何数据。ERR_EMPTY_RESPONSE

如果检查它说的日志

2018-04-06 11:33:49.136 [错误] <0.671.0> 崩溃报告进程 <0.671.0> 与 0 个邻居崩溃原因:调用未定义函数 oauth2:authorize_password({<<"test@localhost" >>,<<"35.18.18.32">>}, <<"localhost">>, <<" http://www.razrcorp.com/ ">>, [<<"get_roster">>,<< "sasl_auth">>], {密码,<<"test">>})

0 投票
1 回答
429 浏览

ejabberd - ejabberd API 邀请到 MUC 房间

我正在开发 ejabberd API 来邀请用户到 MUC 房间。我已经为 API 设置了 OAuth。

我已经用 get_room_occupants 测试了 oauth,它工作正常。

现在,我正在尝试访问/api/send_direct_invitation,但根据日志,我无权访问此 api

我已经用命令行生成了 oauth ejabberdctl oauth_issue_token admin@host 31540000 "ejabberd:admin"

我需要传递任何额外的权限吗

Ejabberd 版本: 17.11 安装在: ubuntu 16.04 已配置数据库: mysql

这是一个ejabberd.yml文件

我尝试通过命令行运行它并收到此错误

命令:ejabberdctl send_direct_invitation naviteam1519 conference.xxx.yyy.com "" "You need this room!" KESH2FABDE@xxx.yyy.com

错误:

0 投票
1 回答
238 浏览

rest - 命令需要以管理员权限 Ejabberd Rest Api 运行?

Ejabberdejabberd 16.09. 要配置它,我只是关注 ejabberd 文档(https://docs.ejabberd.im/developer/ejabberd-api/simple-configuration/)。所以当我要从邮递员那里点击http://localhost:5280/api/change_password urlbody:

header: Content-Type: application/json.收到如下错误:

我的 ejabberd.yml 文件配置如下:

任何使用 ejabberd 实现 Rest Api 配置的解决方案都将不胜感激。

0 投票
0 回答
123 浏览

php - 如何保持 php://stdout 永远打开

我发现在身份验证模式下将 php 集成到 Ejabberd 的错误。这个脚本,打开 php://stdin 和 php://stdout 来读/写数据,但是过一段时间它会挂起,所以认证功能不能工作。

我的代码:

我认为,出了点问题,例如:STDOUT 可能坏了,所以我需要永远将数据写入 php://stdout,那么我怎么能确保流永远不会被破坏。

0 投票
3 回答
856 浏览

ejabberd - Ejabberd 版本 17.11 - 收到“失败的 c2s PLAIN 身份验证”错误消息

我已经在我们的服务器中安装了 Ejabberd 版本 17.11。安装完成后,用户可以第一次成功连接Ejabberd服务。但是,一旦该用户结束会话并且如果同一用户再次尝试连接,那么我们将收到以下错误消息。

websocket|<0.574.0>) 来自 xx.xx.xxx.xxx 的 user@domain 的 c2s PLAIN 身份验证失败:用户名或密码无效

注意: 在用户关闭会话时,我们收到以下消息。这是同一用户第一次后无法连接的原因吗?

(websocket|<0.534.0>) 为 user@domain/reg_agent 关闭 c2s 会话:连接失败:连接关闭 [info] 删除 user@domain 的所有推送会话

0 投票
1 回答
60 浏览

ejabberd - 更改或添加 Ejabberd 数据库表的前缀

是否有可能在 Ejabberd 数据库中更改或添加用户表的前缀。

我的要求是,我想通过我自己的数据库( pgsql )进行用户身份验证(使用 php )。使用外部身份验证设置,我设法做到了。就像我想将所有与聊天相关的数据保存在同一个数据库上一样。(不保存在 Ejabberd 中)。但是我已经有一个用户凭据表,不幸的是它不是“用户”,我无法更改它。

我正在考虑是否将 Ejabberd 的“用户”表引用更改为我的数据库的用户数据表名称,我可以使用“外部”数据库设置进行身份验证和存储。

如果我需要做一些更改并重建源代码,我应该在哪里以及哪些是正确的更改添加或更新到源代码中。我试图通过阅读 Ejabberd 源代码库来理解,但我找不到任何线索(当然我是 Erlang 和 Ejabberd 的新手)

如果有人有好的想法或解决方案,请更新我。

0 投票
0 回答
303 浏览

ejabberd - ejabberd 15 不仅允许从本地主机注册

您好,我是 ejabberd 的新手,我有一个问题要解决。我在 ubuntu (machine1) 上安装了 ejabberd 15(我的机器有 32 位,最新版本的 ejabberd 不适用于我的机器),我无法注册用户这是我的步骤

1)我安装了ejabberd并启动了实例

2)我安装了一个xmpp客户端(我正在使用PSI)

3)新用户的注册和登录在本地机器上使用PSI完美地工作

4)我在另一台机器(machine2)上安装了 PSI,我试图注册一个新用户,但 ejabberd 说我没有这个操作的权限

5)然后我使用管理Web界面注册了一个新用户,我尝试从machine2使用这个新用户登录,现在用户可以登录

注意:machine1 在 nat 后面,我访问 trought 端口转发配置(但没问题,因为我重复第二个用户可以登录,如果在管理 Web 界面注册)

看来我必须更改 ejabberd 的 yaml 配置文件中的一些参数,但是什么?

我发布完整的配置文件,谢谢

0 投票
1 回答
1101 浏览

xmpp - 如何使用访问令牌对 ejabberd 上的用户进行身份验证

我有一个正在运行的应用程序,它以电话号码作为标识符,如果用户验证他们的帐户,他们将被授予访问令牌以访问其他 API。我没有密码。

更详细地解释一下:客户端验证电话号码抛出一个发送到电话号码的代码,如果验证,则客户端被授予访问令牌,可用于调用应用程序的其他api

现在我向应用程序添加聊天功能,并设置了一个 xmpp 服务器 (ejabberd)。如何配置 ejabberd 以通过此访问令牌对用户进行身份验证?我已将 ejabberd 配置为使用 sql

0 投票
2 回答
786 浏览

ejabberd - Ejabberd 身份验证

我有我的 Rails 应用程序。每当用户注册时,我也想在 ejabberd 节点上注册用户。但是,每当我使用 curl 请求调用注册 API 时,都会出现以下错误: {"status":"error","code":32,"message":"AccessRules: Account does not have the right to perform the operation."}

我的卷曲请求是:

curl -X POST --data '{"user": "bob", "host": "localhost", "password": "password"}' http://localhost:5443/api/register

我的ejabberd.yml文件如下:

有人可以指出我可能错在哪里吗?

提前致谢。