rest - 使用 REST API 在 ejabberd 中注册新用户

标签 rest authentication token ejabberd ejabberd-api

我在 Windows 10 (localhost) 上使用 ejabberd-18.01。我正在尝试通过 Postman 连接到 ejabberd使用网络方法:

发布:本地主机:5280/api/specific_api_method

根据官方 API 文档 ( https://docs.ejabberd.im/developer/ejabberd-api/admin-api/ ),我尝试使用 POST 方法添加名册项目,其正文如下:

发布:本地主机:5280/api/add_rosteritem

{ “本地用户”:“用户1”, “本地服务器”:“我的域名”, “用户”:“管理员”, “服务器”:“我的域名”, “尼克”:“u1”, “组”:“ friend ”, “潜艇”:“两者” }

我收到错误:

{ “状态”:“错误”, “代码”:32, "message": "AccessRules: 帐户无权执行该操作。" }

如果有人可以指导我如何验证自己的身份并使用 Web API 将新用​​户或名册项目添加到 ejabberd,我将不胜感激。谢谢。

最佳答案

在 yml 文件配置文件中进行这些更改

将 acl 中的环回更改为:

loopback:
    ip:
      - "127.0.0.0/8"
      - "::1/128"
      - "::FFFF:127.0.0.1/128"

并使用此 api_permissions:

api_permissions:
  "console commands":
    from:
      - ejabberd_ctl
    who: all
    what: "*"
  "admin access":
    who:
      - access:
          - allow:
            - ip: "127.0.0.1/8"
            - acl: admin
      - oauth:
        - scope: "ejabberd:admin"
        - access:
          - allow:
              - ip: "127.0.0.1/8"
              - acl: admin
    what:
      - "*"
      - "!stop"
      - "!start"
  "public commands":
    who:
      - acl: loopback
    what:
      - "status"
      - "register"
      - "connected_users_number"

此问题已关闭于:Access denied issue on ejabberd

关于rest - 使用 REST API 在 ejabberd 中注册新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679148/

相关文章:

java - 使用配置类时将@PreAuthorize 或@Secured 与 Jersey 一起使用

java - 这是多余的 NullPointerException 捕获吗?

asp.net - 是否可以根据用户在 MVC 应用程序(html 菜单列表)中的角色隐藏菜单项?

c# - 使用窗口服务 C# 通过 SMS 远程登录到 Windows pc/laptop

mysql - 使用bindParam的pdo更新显示绑定(bind)变量数量与 token 数量不匹配的错误

java - 如何标记文件并将数据输入到数组中?

http - 同一资源的不同 RESTful 表示

rest - 504 网关超时 Spring Boot

asp.net - 基本 IIS 站点的用户名/密码身份验证

ios - 检索已经获取的推送通知 token