Ejabberd oauth 没有生成令牌
Ejabberd oauth is not generating token
能否请一些人解释一下如何配置 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 服务器 - ipaddress 密码 - test
它重定向到 http://ipaddress:5280/oauth/authorization_token 并有响应
这个页面不工作
ipaddress 没有发送任何数据。
ERR_EMPTY_RESPONSE
如果检查它说的日志
2018-04-06 11:33:49.136 [错误] <0.671.0> 具有 0 个邻居的崩溃报告进程 <0.671.0> 崩溃,原因是:调用未定义的函数 oauth2:authorize_password( {<<"测试@localh
ost">>,<<"35.18.18.32">>},<<"localhost">>,<<"http://www.razrcorp.com/">>,[<<"get_roster">>,< <"sasl_auth">>], {密码,<<"test">>})
您的安装中缺少 oauth2 模块。看来您使用的包可能不正确。也许您应该尝试使用 ProcessOne 软件包:https://www.process-one.net/en/ejabberd/downloads/
它们应该是完整的并且包含所有必需的依赖项。
能否请一些人解释一下如何配置 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 服务器 - ipaddress 密码 - test
它重定向到 http://ipaddress:5280/oauth/authorization_token 并有响应 这个页面不工作 ipaddress 没有发送任何数据。 ERR_EMPTY_RESPONSE
如果检查它说的日志
2018-04-06 11:33:49.136 [错误] <0.671.0> 具有 0 个邻居的崩溃报告进程 <0.671.0> 崩溃,原因是:调用未定义的函数 oauth2:authorize_password( {<<"测试@localh ost">>,<<"35.18.18.32">>},<<"localhost">>,<<"http://www.razrcorp.com/">>,[<<"get_roster">>,< <"sasl_auth">>], {密码,<<"test">>})
您的安装中缺少 oauth2 模块。看来您使用的包可能不正确。也许您应该尝试使用 ProcessOne 软件包:https://www.process-one.net/en/ejabberd/downloads/
它们应该是完整的并且包含所有必需的依赖项。