· 6 years ago · Aug 01, 2019, 11:10 AM
1const qs = require('querystring');
2const crypto = require('crypto');
3
4const urlParams = qs.parse(URL_PARAMS);
5const ordered = {};
6Object.keys(urlParams).sort().forEach((key) => {
7 if (key.slice(0, 3) === 'vk_') {
8 ordered[key] = urlParams[key];
9 }
10});
11
12const stringParams = qs.stringify(ordered);
13const paramsHash = crypto
14 .createHmac('sha256', secretKey)
15 .update(stringParams)
16 .digest()
17 .toString('base64')
18 .replace(/\+/g, '-')
19 .replace(/\//g, '_')
20 .replace(/=$/, '');
21
22console.log(paramsHash === urlParams.sign);