Ejabberd oauth не генерирует токен

Может, кто-нибудь объяснит мне, как настроить поддержку ejabberd rest api, я не смог найти достаточно ресурсов по этому поводу.

Я использую Linux (Ubuntu 16.04), поэтому до сих пор я выполнил apt-get -y install ejabberd и, пожалуйста, скажите, есть ли необходимость в изменении файла конфигурации /etc/ejabberd/ejabberd.yml.

<pre>


listen:
  ## To handle ejabberd commands using XML-RPC
  -
    port: 4560
    module: ejabberd_xmlrpc
    access_commands: {}
  -
    port: 5280
 ##   ip: "::"
    ip: "0.0.0.0"
    module: ejabberd_http
    request_handlers:
      "/websocket": ejabberd_http_ws
      # OAuth support:
      "/oauth": ejabberd_oauth
      # ReST API:
      "/api": mod_http_api
    ##  "/pub/archive": mod_http_fileserver
    web_admin: true
    http_bind: true
    register: true
    captcha: true
    tls: false
    certfile: "/etc/ejabberd/ejabberd.pem"

# Allow OAuth authentication and token generation
commands_admin_access: configure
commands:
  - add_commands: [user, admin, open]
# Tokens are valid for a year as default:
oauth_expire: 31536000
oauth_access: all
api_permissions:
  - "admin access":
    - who:
      - admin
    - what:
      - "*"
      - "!stop"

    
    
    
</pre>    

хорошо, я попытался, как указано в документе, но когда я ввел пользователя, сервер и пароль по адресу http://ipaddress:5280/oauth/authorization_token?response_type=token&client_id=localhost&redirect_uri=http://www.razrcorp.com/&scope=get_roster+sasl_auth

я вижу запрос авторизации Приложение localhost хочет получить доступ к области действия get_roster sasl_auth

но когда я заполняю от пользователя - test@localhost server - пароль ipaddress - test

Он перенаправляет на 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 @ localh ost">>,<< "35.18.18.32" >>},<< "localhost">>,<< " http://www.razrcorp.com/ ">>, [<< "get_roster">>,<< "sasl_auth" >>], {пароль,<< "test" >>})

1 ответ

Решение

В вашей установке отсутствуют модули oauth2. Кажется, пакет, который вы используете, может быть неправильным. Может быть, вам стоит попробовать пакеты ProcessOne: https://www.process-one.net/en/ejabberd/downloads/

Они должны быть полными и содержать все необходимые зависимости.

Другие вопросы по тегам