如何使用Oauth支持配置ejabberd

如何使用Oauth支持配置ejabberd,oauth,token,ejabberd,Oauth,Token,Ejabberd,我尝试按照步骤配置ejabberd 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/a

我尝试按照步骤配置ejabberd 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: true
注意:我已重新启动ejabberd

我使用的URL(这是我输入用户服务器密码的页面):
http://mytestsite.com:5280/oauth/authorization_token?response_type=token&client_id=Client1&redirect_uri=http://mytestsite.com&scope=user_get_roster+sasl_认证

我已被重定向到
https://mytestsite.com/?error=access_denied&state=&gws_rd=ssl


根据教程,一旦我在.yml文件中启用了/oauth和/api,以下URL应将我重定向到
http://mytestsite.com/?access_token=RHIT8DoudzOctdzBhYL9bYvXz28xQ4Oj&token_type=bearer&expires_in=3600&scope=user_get_roster+sasl_auth&state=

必须在ejabberd.yml配置文件中定义
oauth_access
参数,否则,任何人都无法创建oauth令牌


我们将更新文档,使其在该部分更加准确。

如何验证用户身份?您的后端配置正确吗?表单中的JID+登录是否正确?您可以通过XMPP使用相同的凭据进行正确的身份验证吗?您能否在管理员web界面中正确验证?如何验证用户?--内部身份验证。您的后端配置是否正确?--是的,我的后端配置正确。表单中的JID+登录是否正确?--是的,没错。您可以通过XMPP使用相同的凭据进行正确身份验证吗?--是的,使用XMPP客户机(Adium&Swift)进行了测试,并且运行正常。您能在管理web界面中正确地进行身份验证吗?是的,可以。您是如何配置
oauth_访问
参数的?嗨,米卡,您在ejabberd_oauth.erl中提到了oauth_访问吗?在ejabberd_oauth.erl/.beam中,我使用了默认配置,没有更改任何内容。或者应该在ejabberd.yml中添加oauth_访问权限?是的,您需要oauth_访问权限,否则没有人可以创建令牌。我们将更新文档以使其更清晰。是这样的吗?:-commands\u admin\u access:configure commands:-add\u commands:user oauth\u expire:3600 oauth\u access:allI我已经尝试了您的建议(启用了“oauth\u access:all”),但它不起作用。我还错过了什么吗?如果你能给我一些关于如何调试这个的提示,我将不胜感激!我重新安装了ejabberd,并在ejabberd.yml中启用了oauth_访问。谢谢你,伙计!嗨,Mickaël,在我这方面,生成OAuth访问令牌是可行的,但是当我请求Web服务时,我总是遇到401个未经授权的错误。我为此发表了另一篇Stackoverflow文章,你能帮我吗?嗨@Shakhassan,我也有同样的问题,无法得到这篇文章。如果你能发布完整的.yml文件,将会非常有帮助。我想我在放置这段代码时犯了一些错误:commands\u admin\u access:configure commands:-add\u commands:user oauth\u expire:3600 oauth\u access:all。非常感谢你的帮助。