auth
Wspólne prymitywy sesji, hashowania haseł i TOTP używane zarówno przez
customer_accounts, jak i admin_users. Jeden z dwóch dozwolonych folderów
modułu w liczbie pojedynczej według konwencji nazewnictwa (obok example).
Co moduł posiada
- Sesje —
session-service.tszapisuje wiersze sesji w Postgres z warstwą cache Redis dla gorących odczytów; cookies podpisywane przez@fastify/cookie. - Hashowanie haseł —
password-hasher.tsopakowuje argon2id; domyślne parametry są dostrojone pod docelowy sprzęt (zobacz sekcję Hardware & system requirements wREADME.mdw katalogu głównym repozytorium). - TOTP — platformowe
kernel/crypto/totpopakowujeotpauth+ pulę kodów zapasowych. - Plugin Fastify —
plugin.tsparsuje cookie sesji i dołączarequest.actor = { kind, id, ... }orazrequest.adminActor. - Strażnicy tras —
requireAdmin(permission?),requireAdminAny(codes)irequireCustomer, udostępniane jako porty zbackend.tsi rozwiązywane przez każdy moduł, który blokuje trasę. Kiedyś były dekoratorami Fastify na pluginie; zostały zamienione na porty, aby produkcja i harness testowy uruchamiały tę samą implementację zamiast dwóch różnych.
Brak własnych tras HTTP
auth to moduł prymitywny — endpointy logowania/wylogowania/2FA należą do
modułów skierowanych do klienta (customer_accounts) i admina (admin_users).
Punkty rozszerzenia
- Magazyn sesji —
session-servicejest konstruowany z(em, redis); alternatywne cache podpinają się tutaj. - Niestandardowe rodzaje actor — rozszerz dyskryminowaną unię
request.actori zaktualizuj pre-handleryrequireX; istniejący kod nadal działa, bo trasy używają tylko fabrykirequireX, którą już konsumują.