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

时间:2018-10-06 12:34:54

标签: rest authentication token ejabberd ejabberd-api

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

POST:localhost:5280 / api / specific_api_method

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

POST:localhost:5280 / api / add_rosteritem

{ "localuser": "user1", "localserver": "mydomain", "user": "admin", "server": "mydomain", "nick": "u1", "group": "Friends", "subs": "both" }

我遇到错误:

{ "status": "error", "code": 32, "message": "AccessRules: Account does not have the right to perform the operation." }

如果有人可以指导我如何进行身份验证以及使用Web API向ejabberd添加新用户或名册项目,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

在您的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

处关闭。