ejabberd否认生成令牌

时间:2016-11-22 09:42:55

标签: oauth ejabberd centos7

我已经阅读了所有可以找到的问题和答案,但是oauth仍然无法正常工作。 这是配置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
##  "/pub/archive": mod_http_fileserver
web_admin: true
http_bind: true
## register: true
captcha: false
commands_admin_access: configure
commands:
  - add_commands: user
oauth_expire: 3600
oauth_access: all

http://192.168.217.128:5280/oauth/authorization_token?response_type=token&client_id=somclient&redirect_uri=http://192.168.217.128:5280&scope=sasl_auth

当我打开这个url显示html表单时,我写了jid,密码和Token TTL(一小时)。点击接受url重定向后 http://192.168.217.128:5280/?error=access_denied&state=

我做错了什么?

我认为这个具体参数的地方是错误的。如果是这样,我不明白放在哪里。

commands_admin_access: configure
commands:
  - add_commands: user
oauth_expire: 3600
oauth_access: all

抱歉我的英文。

2 个答案:

答案 0 :(得分:0)

您可能没有为所有人定义适当的凭据ACL。这意味着oauth_access可能被拒绝。

答案 1 :(得分:0)

这是顶级选项(例如api_permission),它不应该在任何部分,它应该从一行开始。

你应该将oauth_access设为最高级别,所以你应该:

Category_ID

参考链接:https://github.com/processone/ejabberd/issues/1661