🔐 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
composefunction
🔧 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/loginwith authentication handler - Routes:
logoutRoute- POST/auth/logoutwith 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/registerwith 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-emailwith 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-emailwith 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