UNPKG

1.48 kBTypeScriptView Raw
1import { CookieSerializeOptions } from 'cookie';
2import { Config } from '../config';
3import { Cookies } from '../utils/cookies';
4export interface SessionPayload<Session> {
5 header: {
6 /**
7 * Timestamp (in secs) when the session was created.
8 */
9 iat: number;
10 /**
11 * Timestamp (in secs) when the session was last touched.
12 */
13 uat: number;
14 /**
15 * Timestamp (in secs) when the session expires.
16 */
17 exp: number;
18 };
19 /**
20 * The session data.
21 */
22 data: Session;
23}
24export type Header = {
25 iat: number;
26 uat: number;
27 exp: number;
28 [propName: string]: unknown;
29};
30export declare abstract class AbstractSession<Req, Res, Session> {
31 protected config: Config;
32 protected Cookies: new () => Cookies;
33 constructor(config: Config, Cookies: new () => Cookies);
34 abstract getSession(req: Req): Promise<SessionPayload<Session> | undefined | null>;
35 abstract setSession(req: Req, res: Res, session: Session, uat: number, iat: number, exp: number, cookieOptions: CookieSerializeOptions, isNewSession: boolean): Promise<void>;
36 abstract deleteSession(req: Req, res: Res, cookieOptions: CookieSerializeOptions): Promise<void>;
37 read(req: Req): Promise<[Session?, number?]>;
38 save(req: Req, res: Res, session: Session | null | undefined, createdAt?: number): Promise<void>;
39 private calculateExp;
40}
41//# sourceMappingURL=abstract-session.d.ts.map
\No newline at end of file