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
User's DID
metadata
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<readonlySession[]>
Defined in: src/types/interfaces/session.interface.ts:244
List active sessions for user.
Parameters
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
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
Fields to update
Returns
Promise<void>
Remarks
Typically used to extend expiration on activity.