I need to create an ejabberd user from a PHP script. I also need to be able to add the new user to a predefined shared roster.
Should I just call ejabberdctl<
I've solved the problem with mod_register_web [1, 2]. It doesn't require tonnes of code and, I think, is secure enough. mod_register_web provides html page with simple POST form to register new user.
Enable module under separate http listener (in my case, port 5281). Make this port available only for local requests with "ip" parameter.
listen:
port: 5280
module: ejabberd_http
web_admin: true
http_bind: true
## register: true
ip: "127.0.0.1" # Only local requests allowed for user registration
port: 5281
module: ejabberd_http
register: true
modules:
mod_register_web: {}
Request example:
curl -XPOST 127.0.0.1:5281/register/new -d 'username=lucky&host=vHost&password=test&password2=test'
Request can be executed from php code with appropriate library (which was already in my framework).