我正在编写和 ejabberd 模块来检查用户是否存在做某事,我正在使用 ejabberd_auth_external:is_user_exists("USER", "HOST") 来实现这一点,但是我没有 USER 但完整的 JID 以 USER@ 的形式HOST/RESOURCE,有没有办法让 USER 脱离那个字符串
问问题
1356 次
2 回答
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
。
于 2013-10-17T00:45:29.317 回答
1
您可以使用带有分隔符“@”的函数 string:tokens/2,返回列表的第一个元素将是用户名:
JID = "user.name@host/resource".
[User|_] = string:tokens(JID, "@").
于 2013-10-16T05:35:48.213 回答