我的主要目的是从我的网站保存用户,shared_rosters,将用户添加到shared_rosters等。我正在使用NodeJS作为后端。
我无法找到任何库来执行上述任务,因此我决定使用带有JSON的REST API,可以使用ejabberd(请共享任何可以执行上述任务的库)。为此,我试图通过oauth为ejabberd获取访问令牌。我已按照ejabberd文档中提到的步骤进行操作。
我已将以下内容添加到我的'ejabberd.yml'文件中。
-
port: 5280
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
"/log": mod_log_http
# OAuth support:
"/oauth": ejabberd_oauth
# ReST API:
"/api": mod_http_api
web_admin: true
http_bind: true
captcha: true
还在yml文件中添加了oauth特定参数。
commands_admin_access: configure
commands:
- add_commands: user
oauth_expire: 3600
oauth_access: all
我不确定oauth参数的放置是否非常重要。我不确定在哪里放置它,所以我把它放在下面一行上面。我在其他页面上看到了这个位置。
### DATABASE SETUP
重新启动Ejabberd。
当我转到以下网址时,我会看到预期的页面
http://example.net:5280/oauth/authorization_token?response_type=token&client_id=Client1&redirect_uri=http://client.uri&scope=get_roster+sasl_auth
现在,当我输入管理员的用户名和密码时,如下所示
User: admin@xxx.xxx.x.xxx
Server: xxx.xxx.x.xxx
Password: admin
我得到了回复
error=access_denied
我不确定我错过了什么。有人可以帮帮我吗?
答案 0 :(得分:0)
实际上,当我输入数据
时,我也做了同样的事情 User: admin
Server: xxx.xxx.x.xxx
Password: admin
我能够获得令牌。