1.0.6 • Published 6 years ago
pubsub-auth v1.0.6
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();
}
});