User signup (demo)
This Charta explains how user sign is implemented.
We use Pow to handle most of the authentication boiler plate for us. Including Pow in the router registers a /registration route that our users can visit:
Visiting /registrations renders our "new" template:
Once a user submits the registration form, the input is handled by Pow's registration controller. It creates a user record that is used by the rest of the platform.
The Accounts API
Pow is just an implementation detail - it handles user registration and authentication for us. However the rest of the platform depends on our public Accounts interface:
If we wanted to replace Pow by something else, then we'd have to reimplement the authentication and registration code. Everything else would remain untouched as the rest of the code simply uses the Accounts public API.