Let's say I want to create a site where users post picture of cats. 99% of the codebase would be related to users being able to create an account, login, logout, reset password and only a few lines of code to actually save a cat image for that user.
Is there any good library for integrating user management (user registration, login, user permissions, password recovery, etc.) for Node.js?
It's so strange that now we have cars that drive themselves and game engines that allow you to build AAA games with a drag&drop interface but yet most web applications that are created still implement their own user registration and login system.
I usually either implement my own login system from scratch, or use something like passport.js to aid with that, but I still have to write a lot of code.
Do you know of any (maintained) Node.js packages that offer out-of-the-box user management? If there's no standalone package, I think a larger framework that also incorporates user management could also be a good solution.
Here's a list of features that I think the user management library should support:
- Account creation with email/password or social auth (facebook, google, or openID)
- Database with users (preferably MongoDB, or configurable)
- Login (once an account was created, users can login and a session or cookie is automatically created and stored)
- API to easily check if a user is logged and get his user information
- Forgot password
- Secure (encrypted passwords)