Как использовать модуль регистрации ejabberd для пользовательского входа
Я новичок в ejabberd и erlang и создал базовое приложение, которое сначала проверяет, есть ли у пользователя логин или нет. Так что в основном он проверяет таблицу входа в систему mnesia и подтверждает это.
Теперь я увидел, что ejabberd также имеет процесс регистрации для пользователей, как вejabberdctl register username host password
и я, так как я использовал аутентификацию SQL, я увидел, что есть таблица с именем users
в котором хранятся все пользователи и пароль.
Я хотел знать поток последовательности, как эти значения хранятся там, и надеялся использовать его, чтобы выдвинуть эти значения username and password
в мою таблицу мнезии для входа в систему.
Я взглянул на руководство разработчика ejabberd и обнаружил, что mod_register обрабатывает регистрацию нового пользователя, но я не мог точно определить, какая функция используется внутри него для выполнения всех процедур.
Я использовал метод записи информационных сообщений в журналы. Кто-нибудь может мне помочь в этом? Заранее спасибо.
1 ответ
ejabberd_auth
модуль отвечает за регистрацию пользователя вызов mod_register ejabberd_auth:try_register/3
функция и ejabberd_auth:try_register/3
вызвать эти модули (ejabberd_auth_sql
, ejabberd_auth_riak
, ejabberd_auth_mnesia
, ejabberd_auth_external
, ejabberd_auth_anonymous
а также ejabberd_auth_pam
). Эти модули также имеют функцию try_register/3
Модуль ejabberd_auth
вызывает эти модули в соответствии с настройкой методов аутентификации файла конфигурации ejabberd (внутренние, внешние, odbc и т. д.).
Итак, изучите эти модули и функции, чтобы понять поток регистрации ejabberd.