@znode/sign
Version:
signature algorithm
30 lines (29 loc) • 988 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.signWs = exports.sign = void 0;
const hmac_1 = require("@zodash/hmac");
const qs = require("@zcorky/query-string");
function sign(data, secret) {
const _method = data.method.toUpperCase();
let _query = '';
let _body = '';
if (data.query && Object.keys(data.query).length > 0) {
_query = '?' + qs.stringify(data.query);
}
if (data.body && Object.keys(data.body).length > 0) {
_body = JSON.stringify(data.body);
}
const _text = [data.timestamp, _method, data.path, _query, _body];
const text = _text.join('');
return hmac_1.hmacSHA256(text, secret, 'base64');
}
exports.sign = sign;
function signWs(timestamp, secret) {
const t = Math.floor(timestamp / 1000);
const text = `${t}GET/user/verify`;
return hmac_1.hmacSHA256(text, secret, 'base64');
}
exports.signWs = signWs;
const _sign = sign;
_sign.ws = signWs;
exports.default = _sign;