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:preprints', '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.