Skip to main content

ISessionsRevokedHook

Hook interface for executing actions after bulk session revocations.

Overview

The ISessionsRevokedHook interface enables reactions to session revocation events. NOT triggered for user-initiated revocations to avoid notification spam.

The hook is non-blocking - errors are logged but do not affect the revocation operation.

Interface

interface ISessionsRevokedHook {
execute(metadata: SessionsRevokedMetadata): Promise<void>;
}

Metadata

SessionsRevokedMetadata

interface SessionsRevokedMetadata {
user: IUser;
revokedCount: number;
reason: string;
initiatedBy: 'user' | 'admin' | 'system';
triggerEvent?: string;
}
PropertyTypeDescription
userIUserUser whose sessions were revoked
revokedCountnumberNumber of sessions revoked
reasonstringReason for revocation
initiatedBy'user' | 'admin' | 'system'Who initiated revocation
triggerEventstringTrigger event (e.g., password_changed)

When Hook Fires

  • Sessions revoked via revokeAllUserSessions() when NOT user-initiated

Example

import { ISessionsRevokedHook, SessionsRevokedMetadata } from '@nauth-toolkit/core';

export class SessionsRevokedAlertHook implements ISessionsRevokedHook {
async execute(metadata: SessionsRevokedMetadata): Promise<void> {
await this.emailService.sendSessionsRevokedEmail({
to: metadata.user.email,
revokedCount: metadata.revokedCount,
reason: metadata.reason,
});
}
}