#user #framework #web #registration

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

#33 in #user

Download history 17/week @ 2023-10-29 5/week @ 2023-11-05 7/week @ 2023-11-12 12/week @ 2023-11-19 27/week @ 2023-11-26 24/week @ 2023-12-03 3/week @ 2023-12-10 11/week @ 2023-12-17 18/week @ 2023-12-24 2/week @ 2023-12-31 13/week @ 2024-01-07 10/week @ 2024-01-14 10/week @ 2024-01-21 16/week @ 2024-01-28 4/week @ 2024-02-04 26/week @ 2024-02-11

61 downloads per month
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

~27MB
~668K SLoC