UNPKG

gamerocket

Version:

Gamerocket NodeJS Client Library

49 lines (38 loc) 1.4 kB
(function() { var Encryption, Utility, base64, crypto, querystring; crypto = require('crypto'); querystring = require('querystring'); base64 = require('base64'); Utility = require('./utility').Utility; Encryption = (function() { function Encryption() {} Encryption.sign = function(method, url, parameters, secretKey) { var array_key, base_string, key, obj_param_sorted, qs, to_sha256, value, _i, _len; base_string = method + "&" + encodeURIComponent(url.toLowerCase()) + "&"; qs = ""; if (!Utility.objectIsEmpty(parameters)) { obj_param_sorted = {}; array_key = []; for (key in parameters) { value = parameters[key]; array_key.push(key); } array_key = array_key.sort(); for (_i = 0, _len = array_key.length; _i < _len; _i++) { key = array_key[_i]; obj_param_sorted[key] = parameters[key]; } for (key in obj_param_sorted) { value = obj_param_sorted[key]; value = encodeURIComponent(value); } qs = querystring.stringify(obj_param_sorted); } base_string += encodeURIComponent(qs); to_sha256 = crypto.createHash("sha256").update(base_string + secretKey).digest("hex"); return base64.encode(to_sha256); }; return Encryption; })(); exports.Encryption = Encryption; }).call(this);