@fmpanelli/some-middleware-setup
TypeScript icon, indicating that this package has built-in type declarations

2.0.15 • Public • Published

some-middleware-setup

A library containing some functions I use in my Google Cloud Functions to setup the express middleware.

Usage

The typical use is the following:

# index.ts 

import express from "express";
import { errorHandler } from "@fmpanelli/some-middleware";
import { CorsMiddleware, OAuth2Middleware } from "@fmpanelli/some-middleware-setup"

// Create an Express object and routes (in order)
export const main = express();

new CorsMiddleware().setupCors(main);
new OAuth2Middleware().setupOAuth2(main);

main.get("/myapi/", myRequestHandleFunction);

main.use(errorHandler);

CORS

The call CorsMiddleware().setupCors(main) sets up the middleware to handle the CORS protocol. The configuration isa based on the environment variables:

# if YES or Y the CORS middleware is enabled, otherwise it is not
CONFIG_CORS_ENABLED=YES

# list of domains enabled for CORS in JSON format
CONFIG_CORS_DOMAINS='["domain1.com","domain2.com"]'

OAuth2Middleware

The call OAuth2Middleware().setupOAuth2(main) sets up the middleware to handle the OAuth2 authentication with Google. The configuration is based on the environment variables:

# if YES or Y the OAUTH2 middleware is enabled, otherwise the authorization
# is not checked
CONFIG_OAUTH2_FILTER_ENABLED=YES

# list of domains enabled for CORS in JSON format
CONFIG_OAUTH2_SERVER=https://oauth2.googleapis.com

# list of authorized client Ids
CONFIG_OAUTH2_CLIENT_IDS='["client-id-1","client-id-1"]'

# list of authorized domains: only users from those domains will be allowed
CONFIG_OAUTH2_DOMAINS='["domain1.com","domain2.com"]'

# list of whitelisted users
CONFIG_OAUTH2_WHITELIST='["whitelistedclient@somedomain.com","whitelistedclient3@somedomain.com"]

Readme

Keywords

none

Package Sidebar

Install

npm i @fmpanelli/some-middleware-setup

Weekly Downloads

1

Version

2.0.15

License

ISC

Unpacked Size

27.9 kB

Total Files

26

Last publish

Collaborators

  • filippomariapanelli