管理名册修改真正的外部Web应用程序和禁用用户?

时间:2012-09-11 15:03:45

标签: xmpp ejabberd rostering

我有一个网络应用程序是一个游戏,只有在某些分数后,人们才能成为朋友,并且应该自动添加到彼此的朋友列表中。

试图弄清楚如何处理Ejabberd中的名单

  • 阻止任何用户自己添加任何其他人
  • 只允许webapp处理对名单的修改(buddylist)

使用类似strophe的客户端JS库不安全我需要使用serveride方法将用户添加到彼此的名单中。关于如何用Ejabberd做这个想法的想法?

编辑: 好吧,似乎ejabberd的mod_rest给了restfull访问(所有?)ejabbard方法

1 个答案:

答案 0 :(得分:0)

好的,所以在我走上正确的轨道后,我设法在一小时内搞清楚了......

  • 安装ejabberd
  • 安装mod_rest
  • 安装mod_admin_extra

命令:

ejabberdctl help process_rosteritems

Command Name: process_rosteritems

  Arguments: action::string
             subs::string
             asks::string
             users::string
             contacts::string

  Returns: res::rescode

  Tags: roster 

  Description: List or delete rosteritems that match filtering options 

Explanation of each argument:
 - action: what to do with each rosteritem that matches all the filtering options
 - subs: subscription type
 - asks: pending subscription
 - users: the JIDs of the local user
 - contacts: the JIDs of the contact in the roster

Allowed values in the arguments:
 ACTION = list | delete
 SUBS = SUB[:SUB]* | any
 SUB = none | from | to | both
 ASKS = ASK[:ASK]* | any
 ASK = none | out | in
 USERS = JID[:JID]* | any
 CONTACTS = JID[:JID]* | any
 JID = characters valid in a JID, and can use the globs: *, ?, ! and [...]

This example will list roster items with subscription 'none', 'from' or 'to' that have any ask property, of local users which JID is in the virtual host 'example.org' 
and that the contact JID is either a bare server name (without user part) or that has a user part and the server part contains the word 'icq':
 list none:from:to any *@example.org *:*@*icq*