Oasis Auth Service (Oasis middle-end for Unified Login)

The Oasis Auth Service is a middle-end designed to centralize and unify the configuration of fundamental resources and validation processes in one place, allowing other services to utilize it efficiently. Currently, the Oasis Auth Service manages 9 core services.

Here's the revised version with the additional detail about retrieving information from the Parameter Store before validation:

  const router = new RouterMiddleware({
    initial: {
      method: RouteHTTPMethods.POST,
      action: new InitSessionService(),
    },
    'cross-auth': {
      method: RouteHTTPMethods.GET,
      action: new CrossAuthentication(),
    },
    validate: {
      method: RouteHTTPMethods.POST,
      action: new ValidateOtpService(),
    },
    logout: {
      method: RouteHTTPMethods.POST,
      action: new LogoutService(),
    },
    'save-device': {
      method: RouteHTTPMethods.POST,
      action: new DeviceManagementService(),
    },
    'reset-password': {
      method: RouteHTTPMethods.POST,
      action: new ResetPasswordService(),
    },
    'health-check': {
      method: RouteHTTPMethods.POST,
      action: new HealthCheckService(),
    },
    'user-origin': {
      method: RouteHTTPMethods.GET,
      action: new UserOriginService(),
    },
    'synchronize-user': {
      method: RouteHTTPMethods.POST,
      action: new SynchronizeUserService(),
      config: {
        requireAuth: {
          enable: true,
          type: AuthType.API_KEY,
        },
      },
    },
  });
  return await router.exect(event);

Pre-Validation Process

Before performing the main validations, several methods are invoked to gather critical information required to continue the execution, such as:

This initial data retrieval sets the foundation for the validation process.

Validation Types

The Oasis Auth Service performs multiple types of validation through the Service Validator Handler to ensure the integrity and security of incoming requests:

CAPTCHA Validation:

Origin Validation: