7 releases
0.1.6 | Dec 16, 2020 |
---|---|
0.1.5 | Dec 15, 2020 |
#243 in Email
Used in neighbor
17KB
323 lines
Sitter
A library for managing user registration, login, and the user's things.
Installation
Sitter is currently tightly coupled with the Neighbor application. To create the necessary schema, follow these directions: https://github.com/jeremyandrews/neighbor/blob/main/README.md#installation
Architecture
Sitter is inspired by the architecture of the Drupal 6 User module. It aims to provide a flexible and extensible mechanism for managing user registration, login, and permissions.
Notes
- decoupled; backend-only functionality for now (no forms/HTML);
- data and functionality exposed via a JSON api;
- replace uid with uuid;
- allow manually reserved names and email address;
- allow manual blocking of users;
- pluggable user registration;
- pluggable user login/validation;
- track when users log-in (logging and timestamp);
- hook_login;
- roles and permissions;
- test coverage;
Add-ons (used for blog series; proves out extensibility)
- two-factor authentication functionality;
- flood/throttling functionality;
- api tokens;
- JWT;
Research
- MySQL, PostgreSQL, and/or SQLite;
- customized user table/fields (ie, email only?);
- customized paths;
- passwords/bcrypt;
- actix, or agnostic server? (Rocket 0.5?);
- api versioning;
- ui: Vue.js?;
- email: email validation, password resets;
Dependencies
~29MB
~624K SLoC