1.0.6 • Published 6 years ago

pubsub-auth v1.0.6

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

pubsub-auth

A simple library for encrypting and decrypting messages sent via GCP PubSub.

Installation

npm install pubsub-auth

Usage

Encryption of PubSub Messages

const { readFileSync } = require('fs');
const path = require('path');
const pubsub = new (require('@google-cloud/pubsub'))({
  projectId: 'sample-project'
});
const secret = readFileSync(path.join(__dirname, './pubsub_verification_key')).toString();

const { sign } = require('pubsub-auth');

const publishMessage = (someData, someAttributes) => {
  const { data, attributes } = sign(someData, someAttributes)(secret);
  return pubsub
    .topic()
    .publisher()
    .publish(data, attributes);
};

publishMessage({ name: 'Acuna Jr.' }, { homeRuns: 26 });

Decryption of PubSub Messages

const { readFileSync } = require('fs');
const path = require('path');
const pubsub = new (require('@google-cloud/pubsub'))({
  projectId: 'sample-project'
});
const secret = readFileSync(path.join(__dirname, './pubsub_verification_key')).toString();

const app = require('express')();
const { verify } = require('pubsub-auth');

app.use((req, res, next) => {
  const { data, attributes } = req.body.message;
  if (verify(data, attributes)(secret)) {
    next();
  } else {
    res.status(401).send();
  }
});