I’m using Prosody as the engine for an XMPP-based game service and app I’m developing, and need a way for users to sign up for the service. While signing up, it would be nice to have a CAPTCHA or other spam-blocker and some way to collect valid email addresses.
I’m aware of
mod_register_ibr (which implements the registration part of
XEP-0077, but that only saves a username and password without allowing for custom properties. The way I see it, I have three options:
- Have a two-step registration process, where one first registers on Prosody using
mod_register_ibrand then enters additional info through another
XEP-0077endpoint exposed by my gaming service. (This can be combined into one step on the frontend/client so it doesn’t seem cumbersome to the user).
- Have a non-XMPP way for people to register: for example through a webpage or REST API. This could run the appropriate
prosodyctlcommands on the server to register the user in Prosody, or manipulate the database directly if it’s possible and I figure out how.
- Write a custom Lua module which reimplements
XEP-0077but asking for additional info as well this time. (Caveat: I’d have to figure out how to incorporate this info in Prosody’s database or set up a custom database or table for that).
Which of these would you recommend, in terms of how neat/non-complex it is as well as how long it would take to implement? Or does anyone have any better suggestions?
PS: I think this is a more appropriate place to post this question than StackOverflow, but correct me if I’m wrong!