Auth
Panoramica
@pzeta/postgrest espone un Strategy Pattern per l'autenticazione: ogni strategia implementa l'interfaccia IAuthStrategy e puo essere iniettata nel client HTTP a runtime, senza modificare il codice chiamante.
Il AuthService orchestra le operazioni di alto livello (login, logout, register, refresh) delegando la gestione effettiva del token alla strategia configurata. La factory AuthStrategyFactory centralizza l'instanziazione.
Strategie disponibili
| Strategia | Storage | Sicurezza | Use case |
|---|---|---|---|
JwtAuthStrategy | sessionStorage (default) o custom | Media — token leggibile da JS (XSS surface) | API REST stateless con refresh token |
CookieAuthStrategy | Cookie HTTP-only (server-side) | Alta — token non leggibile da JS | App con backend che gestisce sessioni |
ApiKeyAuthStrategy | In-memory nell'istanza | Bassa lato client — chiave a lungo termine | Dev/test, M2M leggero, SDK admin |
NoAuthStrategy | — | — | Endpoint pubblici, health-check |
sessionStorage come storage JWT out-of-the-box per ridurre la superficie d'attacco XSS (token isolato per tab, eliminato alla chiusura). Per persistenza cross-sessione passare uno storage custom.Esempio rapido
import {
AuthStrategyFactory,
AuthServiceFactory,
HttpClientFactory,
} from '@pzeta/postgrest'
const httpClient = HttpClientFactory.createFetchClient()
const strategy = AuthStrategyFactory.createJwtStrategy()
const authService = AuthServiceFactory.create(httpClient, strategy)
httpClient.setAuthStrategy(strategy)
httpClient.setAuthHandler(authService) // retry automatico su 401
await authService.login({ email: 'user@example.com', password: 'secret' })
Sotto-pagine
ApiKeyAuthStrategy
Autenticazione tramite API key in header HTTP. Adatta a sviluppo, test e comunicazione M2M leggera.
AuthService
Servizio di autenticazione completo. Login, logout, register, activate, forgotPassword, resetPassword, refresh con locking concorrente. Implementa anche IAuthHandler per retry automatico su 401.
AuthServiceFactory
Factory statica per creare istanze di AuthService con configurazione consistente.
AuthStrategyFactory
Factory statica per la creazione di tutte le strategie di autenticazione (JWT, Cookie, ApiKey, NoAuth). Espone metodi specifici e un metodo dinamico create(type, options).
CookieAuthStrategy
Strategia di autenticazione basata su cookie HTTP-only emessi dal backend. Token invisibile a JavaScript, massima mitigazione XSS.
JwtAuthStrategy
Strategia di autenticazione JWT Bearer. Token in sessionStorage di default, storage custom pluggable via interfaccia JwtTokenStorage.
NoAuthStrategy
Strategia no-op per endpoint pubblici. Nessun header di autenticazione applicato.
Vedi anche
PostgRESTClient— facade che integra auth + cache + HTTPFetchHttpClient— client HTTP che applica le strategie