I'm building something like this for a few personal projects. I am in the process of improving the docs and adding docs around setting up outbound email for forgot password flows, etc... but it works for all the things you mentioned above. Note that the password hashing is using salted SHA-256 instead of something like bcrypt as you don't really want long CPU burns on Workers. If this is a concern you can use bcrypt or an external hashing service or whatever. - https://github.com/devondragon/workers-users