如何使用OAuth令牌与Stophe.js中的ejabberd连接?

时间:2017-06-17 03:00:28

标签: javascript oauth ejabberd ejabberd-api strophe.js

我正在尝试从strophe.js连接到ejabberd服务器。我已经在ejabberd中启用了OAuth,因此,一旦用户通过身份验证,我就能够成功为用户获取OAuth令牌。工作流程如上所述: -

  1. 当用户在我的网络应用程序中注册时,我使用相同的凭据为用户创建ejabberd帐户。
  2. 用户登录我的网络应用
  3. 成功登录后,我会在OAuth机制的帮助下将用户登录到ejabberd。
  4. OAuth令牌传递给客户端
  5. 现在使用strophe.js的客户端与ejabberd建立连接以执行所有其他操作,例如获取名单列表,发送状态,发送消息等。
  6. 我在第4步遇到问题,因为我无法找到合适的方式将OAuth令牌发送到ejabberd,同时进行连接。顺便说一句,我是strophe.js的新手。互联网上的所有示例都使用用户名和密码。我不想再问用户密码,我也不想在文件中硬编码。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用OAuth令牌从strophe连接ejabberd服务器。

  1. 从api生成的OAuth令牌必须具有范围sasl_auth
  2. 在创建strophe实例时,通过选项机制以[Strophe.SASLXOAuth2]
  3. 使用oauth令牌连接替换密码时 例如。 connection.connect(jid,ejabberd_oauth_token)