sitter

Crates.iositter
lib.rssitter
version0.1.6
sourcesrc
created_at2020-12-10 08:02:55.162976
updated_at2020-12-16 12:11:20.977547
descriptionA library for managing user registration, login, and the user's things.
homepagehttps://github.com/jeremyandrews/sitter
repositoryhttps://github.com/jeremyandrewws/sitter
max_upload_size
id321415
size18,104
Jeremy Andrews (jeremyandrews)

documentation

https://docs.rs/sitter/

README

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;
Commit count: 0

cargo fmt