Référence d'API — @nodefony/http — session
stable
Documentation › Référence d’API › @nodefony/http › session
Générée depuis les déclarations de types publiées de
@nodefony/http10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.
@nodefony/http#
import { … } from "@nodefony/http" — 5 symboles.
Classes (1)#
Session#
class Session implements ISession
Session serveur Nodefony — état persistant lié à une identité, indexé par un identifiant opaque (porté par le cookie) dans un ISessionStorage pluggable (File / Redis / SQL). Modèle BFF : le cookie ne transporte qu’un secret aléatoire, jamais de données ni de JWT.
id: stringname: stringstatus: SessionStatusTypestorage: ISessionStoragemanager: SessionsServicesaved: booleanmigrated: booleanreadOnly: boolean— Lecture seule (intent@UseSession({ readOnly })) : la session est reprise et lue mais jamais persistée —savedevient un no-op.context?: ContextTypecreated?: Dateupdated?: Dateoptions: OptionsSessionTypecookieSession: Cookie | nulllifetime?: numberuser?: stringstrategy: SessionStrategyTypeflashBag: FlashBagType— Sac de messages flash (consommés à la lecture).constructor(name: string, options: OptionsSessionType, manager: SessionsService)get dirty(): boolean— Vrai si la session a été mutée sans être encore persistée (dirty-tracking).start(context: ContextType): Promise<this>— Démarre (ou reprend) la session.create(lifetime: number, id?: string, settingsCookie?: CookieOptionsType): this— Crée une session neuve : identifiant opaque CSPRNG, cookie, métadonnées.regenerateId(): void— Régénère l’identifiant (nouveau secret opaque) en conservant l’état courant.save(user?: string): Promise<this>— Persiste la session si elle est dirty (sinon no-op).invalidate(lifetime?: number, id?: string, settingsCookie?: CookieOptionsType): Promise<this>— Détruit la session courante (storage) et en recrée une neuve (nouvel identifiant + cookie).destroy(cookieDelete?: boolean): Promise<boolean>— Détruit la session : vide les sacs, supprime l’entrée storage, et (option) efface le cookie.setCookieSession(leftTime: number, options?: CookieOptionsType): Cookie | nulldeleteCookieSession(): Cookie | nullisValidSession(_data: ISerializedSession, context: ContextType): booleantouchIfNeeded(): Promise<void>— Prolonge l’idle timeout de la session active sur l’activité courante, de façon throttlée (1 écriture par tranche d’idle, jamais par requête) et sans réécrire le blob (write légertouchdu st …checkSecureReferer(context: ContextType): booleanget(key: string): unknownset(key: string, value: unknown): unknowngetAttributes(): Record<string, unknown>getMetaBag(key: string): unknownsetMetaBag(key: string, value: unknown): voidgetMetas(): MetaBagTypegetFlashBag(key: string): unknownsetFlashBag(key: string, value: unknown): unknownflashBags(): FlashBagTypeclearFlashBag(key: string): voidclearFlashBags(): voidserialize(user?: string): ISerializedSessiondeSerialize(serialized: ISerializedSession): voidclear(): void— Réinitialise les trois sacs (attributs, métas, flash) — état vide.getName(): stringsetName(name: string): voidcheckStatus(): "restart" | boolean
Constantes (4)#
SESSION_COLUMN_ALIASES#
const SESSION_COLUMN_ALIASES: Readonly<Record<string, string>>
Table d’alias des backends dont le schéma nomme l’identifiant de session session_id (SQL comme Mongo) — à passer à renameOrderFields (core).
SESSION_DEFAULT_ORDER#
const SESSION_DEFAULT_ORDER: NonNullable<IPageQuery["order"]>
Ordre contractuel appliqué quand le client n’en demande aucun : activité la plus récente d’abord, départagée par identifiant pour rester déterministe à horodatage égal (sans quoi une pagination peut sauter ou répéter une ligne entre deux pages).
SESSION_DEFAULT_ORDER_SQL#
const SESSION_DEFAULT_ORDER_SQL: NonNullable<IPageQuery["order"]>
Ordre par défaut des backends dont le schéma nomme l’identifiant session_id — SESSION_DEFAULT_ORDER déjà traduit.
SESSION_SORTABLE_FIELDS#
const SESSION_SORTABLE_FIELDS: readonly [ "updatedAt", "createdAt", "user", "id" ]
Le vocabulaire de tri des sessions, en noms PUBLICS — ceux qu’un client écrit dans l’URL (?order=updatedAt:DESC), jamais des noms de colonne.