UNPKG

@znode/sign

Version:
38 lines (37 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signWs = exports.sign = void 0; const sha512_1 = require("@zodash/sha512"); const hmac_1 = require("@zodash/hmac"); const qs = require("@zcorky/query-string"); function sign(data, secret) { const _method = data.method.toUpperCase(); const _url = data.url; const _query = stringify(data.query, qs.stringify); const _payload = stringify(data.payload, JSON.stringify); const _timestamp = data.timestamp; // sha512 hash body const _payloadHash = sha512_1.default(_payload); // specify sort const _data = [_method, _url, _query, _payloadHash, _timestamp]; // join with \n const text = _data.join('\n'); // hmac sha512 return hmac_1.hmacSHA512(text, secret); } exports.sign = sign; function stringify(v, stringifyFn) { if (!v) return ''; if (typeof v === 'string') return v; return stringifyFn(v); } function signWs(data, secret) { const text = qs.stringify(data); return hmac_1.hmacSHA512(text, secret); } exports.signWs = signWs; const _sign = sign; _sign.ws = signWs; exports.default = _sign;