🔐 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:
- Schema:
loginWithCredentialsSchema
- validates login credentials - Routes:
loginWithCredentialsRoute
- POST/auth/login
with authentication handler - Routes:
logoutRoute
- POST/auth/logout
with session termination
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 authenticationPOST /api/auth/logout
- Session termination
registerCredentialsFeature
Handles user registration with credential validation and account creation.
Purpose: Processes new user registration with data validation
Composition:
- Schema:
registerCredentialsSchema
- validates registration data - Route:
registerCredentialsRoute
- POST/auth/register
with account creation
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:
- Schema:
sendVerificationEmailSchema
- validates optional fingerprint for device security - Route:
sendVerificationEmailRoute
- POST/auth/:userId/send-verification-email
with email sending
Usage:
import { features } from '@nodeblocks/backend-sdk';
// With database configuration
app.use('/api', defService(partial(features.emailVerificationFeature, [{ dataStores: db }])));
API Endpoint: POST /api/auth/:userId/send-verification-email
confirmEmailFeature
Processes email confirmation tokens to verify user accounts.
Purpose: Validates email verification tokens and confirms user accounts
Composition:
- Schema:
confirmEmailSchema
- validates verification token from email - Route:
confirmEmailRoute
- POST/auth/confirm-email
with token processing
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