gpt4 book ai didi

node.js - 通过 Node js 应用程序访问 ejabberd ReST API

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:57 26 4
gpt4 key购买 nike

我有一个在 Ubuntu 16.04 上运行的 ejabberd (16.01) 服务器。我有另一个 NodeJs 应用程序在不同的服务器上运行。通过 NodeJs 应用程序,我希望使用 https://docs.ejabberd.im/developer/ejabberd-api/ 中给出的 ReST API 添加用户、添加名册等。 .

我正在做 https://docs.ejabberd.im/developer/ejabberd-api/simple-configuration/ 给出的简单配置对于这个练习。配置显示添加以下代码片段:

  commands_admin_access:
- allow:
- user: "admin@localhost"
commands:
- add_commands: [user, admin, open]
# Tokens are valid for a year as default:
auth_expire: 31536000
oauth_access: all

这里的问题是,文档没有指定这些配置需要添加到什么 header 下?该配置的确切位置完全丢失!

我在文件末尾添加了上述配置。然而,ejabberd 服务器无法识别这些选项。日志显示:

validate_opts:792 unknown option 'auth_expire' will be likely ignored
validate_opts:792 unknown option 'api_permissions' will be likely ignored
validate_opts:784 ignoring option 'commands_admin_access' with invalid value: [[{allow,[[{user,<<"ankit@replica3377.cloudapp.net">>}]]}]]

下面是我在 ejabberd.yml 文件中添加的额外配置:

commands_admin_access:
- allow:
- user: "ankit@replica3377.cloudapp.net"
commands:
- add_commands:
- status
- registered_users
- register
- unregister
# Tokens are valid for a year as default:
auth_expire: 31536000
oauth_access: all

api_permissions:
"API used from localhost allows all calls":
- who:
- ip: "168.63.209.95"
- what:
- "*"
- "!stop"
- "!start"

我认为文档不是很清楚。有人可以建议我在这里做错了什么吗?或者有没有其他方法可以实现我想要做的事情?

最佳答案

您正在使用非常旧版本的 Ejabberd。最新的是 17.04,与 16.01 相比,API 权限框架有很多变化。

首先,让我澄清一下您看到警告的原因。

  1. 'auth_expire' -- 实际参数名称是'oauth_expire'。看起来文档中有错误。请引用this代码链接。
  2. 'api_permission' -- 该参数在 16.12 版本中引入。请引用this链接。
  3. 'commands_admin_access' -- 在 16.01 版本中,此参数仅接受原子作为输入。 ACL 支持是在后续版本中引入的。因此,您可以创建 ACL 规则并提供规则名称,如 this .

现在回答在哪里添加这个参数的问题——只要遵循yaml格式的指导原则,你可以在任何你想要的地方添加这个参数。由于这是独立的配置,因此它不应位于任何其他配置下。您可以将其放在最后,它应该可以正常工作。

关于node.js - 通过 Node js 应用程序访问 ejabberd ReST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com