#user #registration #framework #web

sitter

A library for managing user registration, login, and the user's things

7 releases

0.1.6 Dec 16, 2020
0.1.5 Dec 15, 2020

#930 in Authentication


Used in neighbor

Apache-2.0

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

~28MB
~678K SLoC