Skip to content

Commit

Permalink
fix: normalize escape sequences after JSON.stringify()
Browse files Browse the repository at this point in the history
  • Loading branch information
gr2m committed Apr 11, 2019
1 parent 9b9dc8b commit 3dd15ee
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion sign/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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()
})
}

0 comments on commit 3dd15ee

Please sign in to comment.