Skip to main content
Version: 🚧 Canary

🔐 Authentication Feature Blocks

Authentication feature blocks provide complete, pre-composed functionality for user authentication operations in Nodeblocks applications. These features combine schemas, routes, and handlers to create ready-to-use API endpoints for login, registration, email verification, and session management.


🎯 Overview

Authentication feature blocks are designed to:

  • Provide complete authentication workflows for user login and registration
  • Combine schemas with routes for validated authentication operations
  • Include security measures and token management automatically
  • Support email verification and account confirmation flows
  • Handle session management and logout operations seamlessly

📋 Feature Structure

Each authentication feature follows a consistent composition pattern:

  • Schema: Validates authentication input data and parameters
  • Route: Provides HTTP endpoint with authentication handlers
  • Composition: Combines schema and route using compose function

🔧 Available Authentication Features

loginWithCredentialsFeature

Provides complete login and logout functionality with credential validation.

Purpose: Handles user authentication with validated credentials and secure logout

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api/auth', defService(partial(features.loginWithCredentialsFeature, [{ dataStores: db }])));

API Endpoints:

  • POST /api/auth/login - User authentication
  • POST /api/auth/logout - Session termination

registerCredentialsFeature

Handles user registration with credential validation and account creation.

Purpose: Processes new user registration with data validation

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api/auth', defService(partial(features.registerCredentialsFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/register


emailVerificationFeature

Sends verification emails to users for account confirmation.

Purpose: Handles email verification request processing

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.emailVerificationFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/:identityId/send-verification-email


confirmEmailFeature

Processes email confirmation tokens to verify user accounts.

Purpose: Validates email verification tokens and confirms user accounts

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.confirmEmailFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/confirm-email


changeEmailFeature

Email change feature with schema validation and routing for updating user email addresses.

Purpose: Handles email change initiation with validation

Composition:

  • Schema: changeEmailSchema - validates identityId and new email (plus internal password verification in handlers)
  • Route: changeEmailRoute - PATCH /auth/:identityId/change-email with email update processing

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.changeEmailFeature, [{ dataStores: db }])));

API Endpoint: PATCH /api/auth/:identityId/change-email


checkTokenFeature

Token validation feature with schema validation and routing for authentication checks.

Purpose: Handles token validation with target context

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.checkTokenFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/token/check


confirmNewEmailFeature

Email confirmation feature with schema validation for new email address verification.

Purpose: Handles new email confirmation after email change

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.confirmNewEmailFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/confirm-new-email


sendResetPasswordLinkEmailFeature

Password reset email feature with schema validation and routing for password recovery.

Purpose: Handles password reset email generation and sending

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.sendResetPasswordLinkEmailFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/send-reset-password-link-email


changePasswordFeature

Change password feature with schema validation and routing for updating user passwords.

Purpose: Handles password change with current password verification and new password hashing

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.changePasswordFeature, [{ dataStores: db }])));

API Endpoint: PATCH /api/auth/:identityId/change-password


activateFeature

Account activation feature with schema validation and routing for activating user accounts.

Purpose: Handles account activation with email verification and identity status update

Composition:

  • Schema: activateSchema - validates identity activation request (requires identityId)
  • Route: activateRoute - POST /auth/activate with account activation processing

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.activateFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/activate


deactivateFeature

Deactivate account feature with schema validation and routing for deactivating user accounts.

Purpose: Handles account deactivation with identity status update and token invalidation

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.deactivateFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/deactivate


completePasswordResetFeature

Complete password reset feature with schema validation and routing for resetting user passwords.

Purpose: Handles password reset completion with token validation and password update

Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';


// With database configuration
app.use('/api', defService(partial(features.completePasswordResetFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/reset-password


refreshTokenFeature

Token refresh feature with schema validation and routing for renewing access tokens.

Purpose: Handles token refresh with token rotation and security measures

Feature Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';

// With database (handlers need dataStores):
app.use('/api', defService(partial(features.refreshTokenFeature, [{ dataStores: db }])));

API Endpoint: POST /api/auth/token/refresh


deleteRefreshTokensFeature

Refresh token deletion feature with schema validation and routing for removing identity refresh tokens.

Purpose: Handles secure deletion of refresh tokens for specific identities

Feature Composition:

Usage:

import { features } from '@nodeblocks/backend-sdk';

// With database (handlers need dataStores):
app.use('/api', defService(partial(features.deleteRefreshTokensFeature, [{ dataStores: db }])));

API Endpoint: DELETE /api/auth/:identityId/refresh-tokens