diff --git a/sign/index.js b/sign/index.js index 45781dd4..19239ce6 100644 --- a/sign/index.js +++ b/sign/index.js @@ -7,6 +7,12 @@ function sign (secret, payload) { throw new TypeError('secret & payload required') } - payload = typeof payload === 'string' ? payload : JSON.stringify(payload) + payload = typeof payload === 'string' ? payload : toNormalizedJsonString(payload) return 'sha1=' + crypto.createHmac('sha1', secret).update(payload).digest('hex') } + +function toNormalizedJsonString (payload) { + return JSON.stringify(payload).replace(/\\u[\da-f]{4}/g, s => { + return s.substr(0, 2) + s.substr(2).toUpperCase() + }) +}