22.25.1 • Published 20 hours ago

@commercetools-backend/express v22.25.1

Weekly downloads
723
License
MIT
Repository
github
Last release
20 hours ago

@commercetools-backend/express

Zero-config HTTP server as Express.js to facilitate development.

This package is primarily built for HTTP servers used by Custom Applications and it provides a set of components to facilitate the development of the HTTP server.

Install

$ npm install --save @commercetools-backend/express

Session middleware

This Express.js middleware should be used to handle the authentication exchange between the server and the /proxy/forward-to endpoint of the Merchant Center API Gateway.

You can read more about the "Proxy to External API" concepts here.

const {
  createSessionMiddleware,
  CLOUD_IDENTIFIERS,
} = require('@commercetools-backend/express');

app.use(
  createSessionMiddleware({
    audience: 'https://my-api-server.com',
    issuer: CLOUD_IDENTIFIERS.GCP_EU,
  })
);
app.use((request, response, next) => {
  // `request.session` contains the useful information
});

Middleware options

  • audience (string): The public-facing URL of your API server. The value should only contain the origin URL (protocol, hostname, port), the request path is inferred from the incoming request.

  • issuer (string): Either a cloud identifier or a valid URL to the Merchant Center API Gateway. The cloud identifier maps to the Merchant Center API URL of the related cloud region.

    • gcp-au: https://mc-api.australia-southeast1.gcp.commercetools.com
    • gcp-eu: https://mc-api.europe-west1.gcp.commercetools.com
    • gcp-us: https://mc-api.us-central1.gcp.commercetools.com
    • aws-fra: https://mc-api.eu-central-1.aws.commercetools.com
    • aws-ohio: https://mc-api.us-east-2.aws.commercetools.com
  • inferIssuer (boolean): Determines whether the issuer should be inferred from the custom request HTTP header x-mc-api-cloud-identifier which is sent by the Merchant Center API Gateway when forwarding the request. This might be useful in case the server is used in multiple regions.

Usage in Serverless Functions

If your HTTP server runs as a Serverless Function, the Express.js middleware should not be needed. Instead you can use the underlying function that does not require the next callback.

Example for Google Cloud Functions

const {
  createSessionAuthVerifier,
  CLOUD_IDENTIFIERS,
} = require('@commercetools-backend/express');

const sessionAuthVerifier = createSessionAuthVerifier({
  audience: 'https://my-api-server.com',
  issuer: CLOUD_IDENTIFIERS.GCP_EU,
});

exports.handler = async function (request, response) {
  try {
    await sessionAuthVerifier(request, response);
  } catch (error) {
    response.status(401).send(JSON.stringify({ message: 'Unauthorized' }));
    return;
  }

  // `request.session` contains the useful information
};

The same concept applies for serverless functions in other cloud providers.

22.25.1

2 days ago

22.25.0

6 days ago

22.24.0

9 days ago

22.23.3

30 days ago

22.23.2

1 month ago

22.23.1

1 month ago

22.23.0

1 month ago

22.22.0

2 months ago

22.21.0

2 months ago

22.20.0

2 months ago

22.19.0

2 months ago

22.18.0

2 months ago

22.17.2

3 months ago

22.17.1

3 months ago

22.17.0

3 months ago

22.16.0

4 months ago

22.15.1

4 months ago

22.15.0

4 months ago

22.14.3

5 months ago

22.14.2

5 months ago

22.14.1

5 months ago

22.14.0

5 months ago

22.13.2

5 months ago

22.13.1

5 months ago

22.10.0

7 months ago

22.6.0

9 months ago

22.8.4

7 months ago

22.8.3

7 months ago

22.8.2

7 months ago

22.8.1

7 months ago

22.8.0

8 months ago

22.12.0

6 months ago

22.3.4

10 months ago

22.3.3

10 months ago

22.5.0

9 months ago

22.7.1

8 months ago

22.7.0

8 months ago

22.9.1

7 months ago

22.13.0

6 months ago

22.11.0

7 months ago

22.4.0

10 months ago

22.3.2

10 months ago

22.3.1

11 months ago

22.1.0

1 year ago

22.2.1

12 months ago

22.2.0

1 year ago

22.3.0

12 months ago

21.25.2

1 year ago

21.25.1

1 year ago

21.25.0

1 year ago

22.0.1

1 year ago

22.0.0

1 year ago

21.23.10

1 year ago

21.24.0

1 year ago

21.24.3

1 year ago

21.24.2

1 year ago

21.24.1

1 year ago

21.23.9

1 year ago

21.23.8

1 year ago

21.23.7

1 year ago

21.23.6

1 year ago

21.23.5

1 year ago

21.22.1

1 year ago

21.22.0

1 year ago

21.23.1

1 year ago

21.23.0

1 year ago

21.23.4

1 year ago

21.23.3

1 year ago

21.23.2

1 year ago

21.18.1

2 years ago

21.18.0

2 years ago

21.19.0

1 year ago

21.20.0

1 year ago

21.20.4

1 year ago

21.20.3

1 year ago

21.20.2

1 year ago

21.20.1

1 year ago

21.20.5

1 year ago

21.21.2

1 year ago

21.21.1

1 year ago

21.21.0

1 year ago

21.16.0

2 years ago

21.17.0

2 years ago

21.13.0

2 years ago

21.13.1

2 years ago

21.14.3

2 years ago

21.14.2

2 years ago

21.14.1

2 years ago

21.14.0

2 years ago

21.15.0

2 years ago

21.8.1

2 years ago

21.8.0

2 years ago

21.9.0

2 years ago

21.12.0

2 years ago

21.10.0

2 years ago

21.11.0

2 years ago

21.6.0

2 years ago

21.2.1

2 years ago

21.3.0

2 years ago

21.3.4

2 years ago

21.0.0

2 years ago

21.1.1

2 years ago

21.0.0-rc.1

2 years ago

21.0.0-rc.0

2 years ago

20.12.1

2 years ago

20.12.3

2 years ago

20.10.6

2 years ago

20.12.0

2 years ago

20.10.4

3 years ago

20.10.1

3 years ago

20.9.4

3 years ago

20.9.3

3 years ago

20.8.0

3 years ago

20.7.0

3 years ago

20.5.2

3 years ago

20.5.1

3 years ago

20.3.0

3 years ago

19.3.1

3 years ago

20.0.1

3 years ago

20.1.2

3 years ago

19.0.1

3 years ago

18.7.0

3 years ago

18.6.1

3 years ago

18.6.0

3 years ago

18.5.6

3 years ago

18.5.4

3 years ago

18.5.2

3 years ago

18.5.1

3 years ago

18.4.1

3 years ago

18.4.0

3 years ago

18.1.4

3 years ago

18.1.0

3 years ago

18.0.2

3 years ago

17.10.1

3 years ago

17.8.0

3 years ago

17.7.1

3 years ago

17.7.0

3 years ago

17.6.2

3 years ago

17.6.0

3 years ago

17.4.1

3 years ago

17.3.1

3 years ago

17.3.0

3 years ago

17.2.1

3 years ago

17.2.0

3 years ago

17.1.0

4 years ago

17.0.1

4 years ago

16.17.2

4 years ago

16.17.0

4 years ago

16.16.1

4 years ago

16.16.0

4 years ago

16.15.8

4 years ago

16.15.0

4 years ago

16.14.0

4 years ago

16.12.0

4 years ago

16.10.0

4 years ago

16.9.1

4 years ago

16.9.0

4 years ago

16.8.6

4 years ago

16.8.5

4 years ago

16.8.4

4 years ago

16.8.1-canary.8

4 years ago

16.8.1-canary.9

4 years ago

16.8.1-canary.1

4 years ago

16.8.1-canary.7

4 years ago

16.8.1-canary.0

4 years ago

16.8.0

4 years ago

16.7.2-canary.6

4 years ago

16.7.2-canary.5

4 years ago

16.7.2-canary.4

4 years ago

16.7.2-canary.3

4 years ago

16.7.2-canary.2

4 years ago

16.7.2-canary.1

4 years ago

16.7.1

4 years ago

16.7.2-canary.0

4 years ago

16.7.1-canary.8

4 years ago

16.7.1-canary.7

4 years ago

16.7.1-canary.1

4 years ago

16.7.1-canary.3

4 years ago

16.7.1-canary.2

4 years ago

16.7.1-canary.5

4 years ago

16.7.1-canary.4

4 years ago

16.7.1-canary.6

4 years ago

16.7.0

4 years ago

16.6.2-canary.13

4 years ago

16.6.2-canary.15

4 years ago

16.7.1-canary.0

4 years ago

16.6.2-canary.11

4 years ago

16.6.2-canary.12

4 years ago

16.6.2-canary.10

4 years ago

16.6.2-canary.9

4 years ago

16.6.2-canary.8

4 years ago

16.6.2-canary.7

4 years ago

16.6.2-canary.6

4 years ago

16.6.2-canary.5

4 years ago