Skip to main content

Interface: ISessionManager

Defined in: src/types/interfaces/session.interface.ts:168

Session manager interface.

Remarks​

Manages user sessions with Redis backend. Supports multi-device sessions and revocation.

Example​

const sessionManager = container.resolve<ISessionManager>('ISessionManager');

// Create session after authentication
const session = await sessionManager.createSession(did, {
ipAddress: '192.168.1.1',
userAgent: 'Mozilla/5.0...',
scope: ['read:eprints', 'write:reviews'],
});

// Get session for validation
const retrieved = await sessionManager.getSession(session.id);

// Revoke on logout
await sessionManager.revokeSession(session.id);

Methods​

createSession()​

createSession(did, metadata): Promise<Session>

Defined in: src/types/interfaces/session.interface.ts:178

Create new session for authenticated user.

Parameters​

did​

DID

User's DID

metadata​

SessionMetadata

Session metadata

Returns​

Promise<Session>

Created session


getSession()​

getSession(sessionId): Promise<null | Session>

Defined in: src/types/interfaces/session.interface.ts:192

Get session by ID.

Parameters​

sessionId​

string

Session identifier

Returns​

Promise<null | Session>

Session or null

Remarks​

Returns null if session does not exist, has expired, or has been revoked.


isTokenRevoked()​

isTokenRevoked(jti): Promise<boolean>

Defined in: src/types/interfaces/session.interface.ts:257

Check if token has been revoked.

Parameters​

jti​

string

JWT ID (jti claim)

Returns​

Promise<boolean>

True if token is revoked

Remarks​

Checks the token blacklist for revoked tokens.


listSessions()​

listSessions(did): Promise<readonly Session[]>

Defined in: src/types/interfaces/session.interface.ts:244

List active sessions for user.

Parameters​

did​

DID

User's DID

Returns​

Promise<readonly Session[]>

Array of active sessions

Remarks​

Returns all non-expired, non-revoked sessions. Ordered by creation date, newest first.


revokeAllSessions()​

revokeAllSessions(did): Promise<void>

Defined in: src/types/interfaces/session.interface.ts:230

Revoke all sessions for user.

Parameters​

did​

DID

User's DID

Returns​

Promise<void>

Remarks​

Used for "log out everywhere" functionality.


revokeSession()​

revokeSession(sessionId): Promise<void>

Defined in: src/types/interfaces/session.interface.ts:218

Revoke session.

Parameters​

sessionId​

string

Session identifier

Returns​

Promise<void>

Remarks​

Marks session as revoked. The session will no longer be returned by getSession.


revokeToken()​

revokeToken(jti, expiresAt): Promise<void>

Defined in: src/types/interfaces/session.interface.ts:270

Add token to revocation blacklist.

Parameters​

jti​

string

JWT ID (jti claim)

expiresAt​

Date

Token expiration timestamp

Returns​

Promise<void>

Remarks​

Token is blacklisted until its natural expiration.


updateSession()​

updateSession(sessionId, updates): Promise<void>

Defined in: src/types/interfaces/session.interface.ts:205

Update session.

Parameters​

sessionId​

string

Session identifier

updates​

SessionUpdate

Fields to update

Returns​

Promise<void>

Remarks​

Typically used to extend expiration on activity.