我正在编写和ejabberd模块检查用户是否存在要做某事,我使用ejabberd_auth_external:is_user_exists(“USER”,“HOST”)来实现,但是我没有USER而是表格中的完整JID USER @ HOST / RESOURCE,是否有任何方法可以将USER从该字符串中删除
答案 0 :(得分:4)
ejabberd执行此操作的典型方法是使用jlib:string_to_jid/1
函数:
-include("jlib.hrl").
...
case jlib:string_to_jid(String) of
#jid{luser = LUser, lserver = LServer} ->
ejabberd_auth:is_user_exists(LUser, LServer);
error ->
false
end.
另外,请勿直接使用ejabberd_auth_external
模块中的函数。请改用ejabberd_auth
。
答案 1 :(得分:1)
你可以使用函数字符串:tokens / 2 with separator" @"并且返回列表的第一个元素是用户名:
JID = "user.name@host/resource".
[User|_] = string:tokens(JID, "@").