🔐 Authentication Route Blocks
Authentication route blocks provide pre-configured HTTP endpoints for user authentication and authorization operations in Nodeblocks applications. These routes combine handlers, validators, and middleware to create complete API endpoints for login, registration, token management, and email verification.
🎯 Overview
Authentication route blocks are designed to:
- Provide complete API endpoints for user authentication operations
- Combine handlers with validators for secure operations
- Include authentication and authorization checks
- Support functional composition patterns
- Handle logging and error management automatically
📋 Route Structure
Each authentication route follows a consistent pattern:
- HTTP Method: Defines the operation type (GET, POST, PATCH, DELETE)
- Path: Specifies the endpoint URL with parameters
- Handler: Composed function chain for business logic
- Validators: Authentication and authorization checks
🔧 Available Authentication Routes
registerCredentialsRoute
Registers new user credentials with optional invitation processing.
Purpose: Handles user registration with support for invitation acceptance
Route Details:
- Method:
POST
- Path:
/auth/register
- Authentication: Not required
Handlers:
- With invitation token:
buildCheckInvitationTokenPayload
,checkToken
,getInvitationIdFromTokenInfo
,getInvitationById
,isPendingInvitation
,registerCredentials
,buildAcceptInvitationPayload
,updateInvitation
- Without token:
registerCredentials
- Finally:
registerTerminator
Validators: None
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.registerCredentialsRoute);
Note: For invitation-specific functionality, see Invitation Blocks.
loginWithCredentialsRoute
Authenticates user credentials and generates access/refresh tokens.
Purpose: Handles user login with credential validation
Route Details:
- Method:
POST
- Path:
/auth/login
- Authentication: Not required
Handlers: loginWithCredentials
, createAccessToken
, createRefreshToken
, setResponseCookie
, loginTerminator
Validators: None
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.loginWithCredentialsRoute);
logoutRoute
Logs out user by invalidating their session and clearing tokens.
Purpose: Handles user logout and session cleanup
Route Details:
- Method:
POST
- Path:
/auth/logout
- Authentication: Required (Bearer token)
Handlers: logout
, logoutTerminator
Validators: verifyAuthentication
(getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.logoutRoute);
refreshTokenRoute
Refreshes access token using a valid refresh token.
Purpose: Generates new access token from refresh token
Route Details:
- Method:
POST
- Path:
/auth/token/refresh
- Authentication: Required (Bearer token)
Handlers: refreshToken
Validators: verifyAuthentication
(getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.refreshTokenRoute);
checkTokenRoute
Validates an access token and returns its status.
Purpose: Validates token authenticity and status
Route Details:
- Method:
POST
- Path:
/auth/token/check
- Authentication: Required (Bearer token)
Handlers: checkToken
Validators: verifyAuthentication
(getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.checkTokenRoute);
deleteTokenRoute
Deletes an authentication token from the system.
Purpose: Removes authentication token (admin only)
Route Details:
- Method:
POST
- Path:
/auth/token/delete
- Authentication: Required (Bearer token)
Handlers: deleteToken
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteTokenRoute);
loginWithOnetimeTokenRoute
Authenticates a user using a one-time token and returns access credentials.
Purpose: Handles OTT-based authentication
Route Details:
- Method:
GET
- Path:
/auth/ott/login
- Authentication: Not required
Handlers: loginWithOnetimeToken
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.loginWithOnetimeTokenRoute);
generateOnetimeTokenRoute
Generates a new one-time token for authentication purposes.
Purpose: Creates OTT for authentication (admin only)
Route Details:
- Method:
POST
- Path:
/auth/ott/generate
- Authentication: Required (Bearer token)
Handlers: generateOnetimeToken
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.generateOnetimeTokenRoute);
restoreOnetimeTokenRoute
Restores a previously invalidated one-time token.
Purpose: Re-enables invalidated OTT (admin only)
Route Details:
- Method:
POST
- Path:
/auth/ott/restore
- Authentication: Required (Bearer token)
Handlers: restoreOnetimeToken
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.restoreOnetimeTokenRoute);
invalidateOnetimeTokenRoute
Invalidates an existing one-time token.
Purpose: Disables active OTT (admin only)
Route Details:
- Method:
POST
- Path:
/auth/ott/invalidate
- Authentication: Required (Bearer token)
Handlers: invalidateOnetimeToken
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.invalidateOnetimeTokenRoute);
sendVerificationEmailRoute
Sends verification emails to users.
Purpose: Triggers email verification process
Route Details:
- Method:
POST
- Path:
/auth/:userId/send-verification-email
- Authentication: Required (Bearer token)
Handlers: sendVerificationEmail
, sendVerificationEmailTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateResourceAccess
(['admin', 'self'])
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.sendVerificationEmailRoute);
confirmEmailRoute
Confirms user email addresses using verification tokens.
Purpose: Processes email verification tokens
Route Details:
- Method:
POST
- Path:
/auth/confirm-email
- Authentication: Not required
Handlers: buildCheckConfirmEmailTokenPayload
, checkToken
, confirmEmail
, confirmEmailTerminator
Validators: None
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.confirmEmailRoute);