Skip to main content

IPostSignupHookProvider

Hook interface for executing actions after user creation.

Overview​

The IPostSignupHookProvider interface enables reactions to successful user creation for notifications, integrations, and analytics.

The hook is non-blocking - errors are logged but do not affect signup.

Interface​

interface IPostSignupHookProvider {
execute(user: IUser, metadata?: SignupMetadata): Promise<void>;
}

Parameters​

ParameterTypeDescription
userIUserNewly created user entity
metadataSignupMetadataOptional signup metadata

SignupMetadata​

interface SignupMetadata {
requiresVerification?: boolean;
signupType?: 'password' | 'social';
provider?: string;
adminSignup?: boolean;
socialMetadata?: Record<string, unknown> | null;
profilePicture?: string | null;
}
PropertyTypeDescription
requiresVerificationbooleanNeeds verification challenge
signupType'password' | 'social'Type of signup
providerstringSocial provider name
adminSignupbooleanAdmin-initiated signup
socialMetadataRecord<string, unknown>Raw OAuth profile data
profilePicturestringProfile picture URL
tip

IPostSignupHookProvider runs before verification challenges are completed. If you want to send a “welcome” email after the user has finished required verification(s), use IOnboardingCompletedHook instead.

When Hook Fires​

  • After password signup completes
  • After social signup completes
  • After admin signup completes

Example​

import { IPostSignupHookProvider, IUser, SignupMetadata } from '@nauth-toolkit/core';

export class WelcomeEmailHook implements IPostSignupHookProvider {
async execute(user: IUser, metadata?: SignupMetadata): Promise<void> {
await this.emailService.sendWelcome({
to: user.email,
firstName: user.firstName,
signupType: metadata?.signupType,
});
}
}