User module

One essential item in Dark is a User module. It should be trivial (take no more than 1 minute) to set up a user module. The user module should support:

  • signing up, logging in and out

  • password reset, including emailing

  • password security - no visible passwords in a trace

  • login with social accounts (where logins on multiple accounts can be combined)

    • github, twitter, facebook and google, at least

  • a primary key that is not an email address

  • easy integration with React and Vue, as well as iOS and Android

  • Easy-to-use, styleable, HTML pages

  • Profile images (pre-populated from gravatar)

  • Tight integration with traces - see a users' profile image on the trace

  • Tight integration with feature flags - easily enable a flag for sets of users

  • Cookies

  • JWT

‚Äč

And it should aim to, in the future, support:

  • Multi-factor auth

  • allowing this be a login system for backends written in other systems

  • adding other social accounts

  • ability to see an audit log of a single user

  • ability to automatically delete a single user's data for compliance reasons

  • levels of authorization

TODO: