2016-07-20 8 views
1

私の主な目的は、ユーザー、shared_rostersを保存し、ユーザーをshared_rostersなどに追加することです。私はバックエンドにNodeJSを使用しています。REST APIを呼び出すためにejabberdのoauthトークンを取得しようとしたときに 'access_denied'を取得する

上記のタスクを実行するためのライブラリが見つかりませんでした。そのため、JSONでREST APIを使用することにしました(ejabberdで利用可能です)。このために、私はejabberdのoauthを通じてアクセストークンを取得しようとしています。私は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 

また、yautファイルにoauth固有のパラメータが追加されました。

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

oauthパラメータの配置が非常に重要かどうかはわかりません。私はどこに配置するか分からなかったので、次の行の上に配置しました。私は他のページにこの配置を見ました。

### DATABASE SETUP 

再起動されたEjabberd。

私は、次のURLに行くと、私は予想されるページを取得し

http://example.net:5280/oauth/authorization_token?response_type=token&client_id=Client1&redirect_uri=http://client.uri&scope=get_roster+sasl_auth 

さて、私のように応答を取得

User: [email protected] 
Server: xxx.xxx.x.xxx 
Password: admin 

以下のように私は、私の管理者のユーザー名とパスワードを入れたときに

error=access_denied 

私には何が欠けているかわかりません。誰も私をここで助けてもらえますか?

答えて

0

私も同じことをやっていた私は

User: admin Server: xxx.xxx.x.xxx Password: admin

としてデータを入力したときに、実際に、私はトークンを取得することができました。

+0

ありがとうございます。私はもともとあなたの答えを試していましたが、いくつかの変更を加えた後、もう一度試しませんでした。今それは動作します! – JasonB

関連する問題