Skip to main content
Version: 0.4.2 (Previous)

🔐 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:

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);