passport-telegram-web-app
Version:
A [Passport](https://www.passportjs.org/) strategy for [telegram web app (bots)](https://core.telegram.org/bots/webapps) authentication.
23 lines (22 loc) • 895 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
var crypto_js_1 = require("crypto-js");
var Utils = /** @class */ (function () {
function Utils() {
}
Utils.defaultDataToCheckString = function (data) {
return "auth_date=".concat(data.authDate, "\nquery_id=").concat(data.queryId, "\nuser=").concat(JSON.stringify(data.user));
};
Utils.defaultHashVerifier = function (token, dataCheckString, hash, callback) {
var secret = (0, crypto_js_1.HmacSHA256)(token, "WebAppData");
var signature = (0, crypto_js_1.HmacSHA256)(dataCheckString, secret);
var hex = signature.toString(crypto_js_1.enc.Hex);
if (hex !== hash) {
return callback(new Error("Not valid"));
}
return callback(null);
};
return Utils;
}());
exports.Utils = Utils;