node-red-contrib-line-signature-validator
Version:
This node is to verify signature of incoming message of LINE messaging API.
28 lines (22 loc) • 886 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _crypto = require('crypto');
var _crypto2 = _interopRequireDefault(_crypto);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (RED) {
var LINESignatureValidator = function LINESignatureValidator(config) {
RED.nodes.createNode(this, config);
var node = this;
this.on('input', function (msg) {
var msgs = [msg, null];
var body = msg.payload;
var signature = _crypto2.default.createHmac('SHA256', config.channelSecret).update(Buffer.from(JSON.stringify(body))).digest('base64');
if (msg.req.headers['x-line-signature'] !== signature) msgs.reverse();
node.send(msgs);
});
};
RED.nodes.registerType('validator', LINESignatureValidator);
};
module.exports = exports['default'];