2016-11-22 2 views
0

Ich habe alle Fragen und Antworten gelesen, was ich finden kann, aber oauth immer noch nicht funktioniert. Dies ist Config ejabberd.yml.Ejabberd bestreitet Generierung Token

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

, wenn ich diese URL öffnen zeigt HTML-Formular, wo ich jid, Passwort und Token TTL (1 Stunde) schreiben. nach dem Klicken akzeptieren URL Weiterleiten http://192.168.217.128:5280/?error=access_denied&state=

Was mache ich falsch?

Ich denke, dass dieser spezifische Parameter Ort falsch ist. Wenn es so ist, verstehe ich nicht, wo ich hinsetze.

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

Entschuldigung für mein Englisch.

Antwort

0

Sie haben wahrscheinlich keine für alle gültige ACL-Berechtigungsnachweise. Das bedeutet, dass oauth_access wahrscheinlich verweigert wird.

+0

Vielen Dank für Ihre Antwort. Das ist mein Acl. acl: admin: Benutzer: - "admin": "localhost" –

+0

Sie beziehen sich auf eine Zugriffsregel alle und wie gesagt, es scheint, dass es nicht in Ihrer Konfiguration definiert ist. –

0

Dies ist Top-Level-Option (wie zum Beispiel api_permission), sollte es in keinem Abschnitt sein, sollte es am Anfang einer Zeile beginnen.

Sie sollen auch oauth_access Top-Level machen, so dass Sie sollten:

oauth_access: all 

api_permission: 
    "abc": 
    ... 

Referenz Link: https://github.com/processone/ejabberd/issues/1661