ejabberd module to authenticate with GNUSocial servers.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



ejabberd module to authenticate with GNUSocial servers.


  1. Download the xmpp_auth.php file and put it in /etc/ejabberd on your server.
  2. Modify the config variables in the php script, and make sure your ejabberd configuration enables http_bind (not https_bind) (See: https://hastebin.com/aveyeritas.rb for a decent configuration with admin ACL, TLS/SSL over port 5222 and s2s enabled with conference rooms.)
  3. Modify ejabberd.yml with:
auth_method: [external]
extauth_program: "/usr/bin/php /etc/ejabberd/xmpp_auth.php"
extauth_instances: 3
  1. Restart the ejabberd server.
  2. Now we need to make changes to apache2 to proxy to port 5280 when browsing to /http-bind on the instance. (With nginx, you need to proxy using it's proxy module, I don't use nginx so IDK how to do that.
a2enmod proxy proxy_http proxy_ajp 
  1. then add the following to your sites conf file in apache (this is to help with cross-scripting/xss/cross-site issues in modern browsers):
RewriteEngine On
RewriteRule ^/http-bind$ http://localhost:5280/http-bind [P,L]
  1. Restart apache2
  2. Confirm that going to https://example.com/http-bind brings up ejabberd's built in web server.
  3. Once that is done, ejabberd should begin to authenticate against your GNU Social instance.