ユーザーが何かを実行するために存在するかどうかを確認する ejabberd モジュールを書いています。それを達成するために ejabberd_auth_external:is_user_exists("USER", "HOST") を使用していますが、ユーザーはありませんが、USER@ の形式で完全な JID を持っていますHOST/RESOURCE、その文字列からユーザーを取得する方法はありますか
質問する
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 に答える