2016-11-22 106 views
0

我已閱讀所有問題和答案,但我可以找到,但oauth仍然無法正常工作。 這是配置ejabberd.yml。ejabberd否認生成令牌

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

當我打開這個網址

顯示HTML表單,在那裏我寫的JID,密碼和令牌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 

對不起,我的英語。

回答

0

您可能沒有爲所有人定義正確的證書ACL。這意味着oauth_access可能被拒絕。

+0

感謝您的答覆。 這是我的Acl。 acl: admin: user: - 「admin」:「localhost」 –

+0

您所指的是訪問規則,正如我所說的,它似乎沒有在您的配置中定義。 –

0

這是頂層選項(比如api_permission),它不應該在任何部分,它應該從一行開始。

你應該做oauth_access頂級一樣,所以你應該有:

oauth_access: all 

api_permission: 
    "abc": 
    ... 

參考鏈接:https://github.com/processone/ejabberd/issues/1661