{"version":3,"sources":["jsdelivr-header.js","/npm/node-sso@1.0.1/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,QAAQ,aAAU,EAClB,IAAI,OAAS,QAAQ,UACjB,SAAW,QAAQ,YAEnB,OAAS,eACT,QAAyB,WACzB,SAAS,EAAQ,QACE,IAAX,IAAqB,EAAS,QAClC,KAAK,OAAS,EACd,KAAK,OAAS,CAClB,CA4EA,OAnEA,EAAQ,UAAU,cAAgB,SAAU,GAExC,IAAI,EAAY,SAAS,UACrB,EAAS,KAAK,SAAS,GACvB,EAAU,KAAK,SAAS,GACxB,EAAO,KAAK,WAAW,CAAC,EAAQ,GAAS,KAAK,MAClD,MAAO,CAAC,EAAQ,EAAS,GAAM,KAAK,IACxC,EASA,EAAQ,UAAU,aAAe,SAAU,GACvC,IAAI,EAAK,EAAM,MAAM,KAAM,EAAS,EAAG,GAAI,EAAU,EAAG,GAAI,EAAO,EAAG,GAEtE,OADc,KAAK,WAAW,CAAC,EAAQ,GAAS,KAAK,OACtC,EACJ,OAAO,KAAK,KAAK,kBAAkB,GAAU,UAAU,WAGvD,IAEf,EASA,EAAQ,UAAU,gBAAkB,SAAU,GAC1C,OAAO,EAAQ,QAAQ,SAAU,KAAK,QAAQ,KAAM,GACxD,EACA,EAAQ,UAAU,kBAAoB,SAAU,GAE5C,OADA,GAAO,IAAI,MAAM,EAAI,EAAI,OAAS,GAAG,KAAK,MAC/B,QAAQ,MAAO,KAAK,QAAQ,KAAM,IACjD,EASA,EAAQ,UAAU,SAAW,SAAU,GAInC,MAHuB,iBAAZ,IACP,EAAU,KAAK,UAAU,IAEtB,KAAK,gBAAgB,OAAO,KAAK,GAAS,SAAS,UAC9D,EASA,EAAQ,UAAU,WAAa,SAAU,GACrC,IAAI,EAAS,OAAO,WAAW,SAAU,KAAK,QAAQ,OAAO,GAAS,OAAO,UAC7E,OAAO,KAAK,gBAAgB,EAChC,EACO,CACX,CAlF4B,GAmF5B,QAAQ,QAAU,QAClB,QAAQ,QAAU","file":"/npm/node-sso@1.0.1/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/node-sso@1.0.1/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeSSO = void 0;\nvar crypto = require(\"crypto\");\nvar random_1 = require(\"./random\");\n// 默认的加盐\nvar SECRET = 'dff12.&6$,Az';\nvar NodeSSO = /** @class */ (function () {\n    function NodeSSO(secret) {\n        if (secret === void 0) { secret = SECRET; }\n        this.secret = secret;\n        this.secret = secret;\n    }\n    /**\n     * @Author: 水痕\n     * @Date: 2020-07-10 13:09:59\n     * @LastEditors: 水痕\n     * @Description: 根据用户id生成一个token\n     * @param {type}\n     * @return:\n     */\n    NodeSSO.prototype.generateToken = function (user) {\n        // 固定的\n        var randomStr = random_1.default();\n        var header = this.toBase64(randomStr);\n        var payload = this.toBase64(user);\n        var sign = this.signHandle([header, payload].join('.'));\n        return [header, payload, sign].join('.');\n    };\n    /**\n     * @Author: 水痕\n     * @Date: 2020-07-10 13:12:59\n     * @LastEditors: 水痕\n     * @Description: 解析token返回token中的加入的参数\n     * @param {type}\n     * @return:\n     */\n    NodeSSO.prototype.decryptToken = function (token) {\n        var _a = token.split('.'), header = _a[0], payload = _a[1], sign = _a[2];\n        var newSign = this.signHandle([header, payload].join('.'));\n        if (newSign == sign) {\n            return Buffer.from(this.base64URLUnescape(payload), 'base64').toString();\n        }\n        else {\n            return null;\n        }\n    };\n    /**\n     * @Author: 水痕\n     * @Date: 2020-07-10 13:04:00\n     * @LastEditors: 水痕\n     * @Description: 将base64中是+、/替换成_ 和=替换成' ' (浏览器是不识别这些的)\n     * @param {type}\n     * @return:\n     */\n    NodeSSO.prototype.base64URLEscape = function (content) {\n        return content.replace(/\\+|\\//g, '_').replace(/=/g, '');\n    };\n    NodeSSO.prototype.base64URLUnescape = function (str) {\n        str += new Array(5 - str.length % 4).join('=');\n        return str.replace(/\\-/g, '+').replace(/_/g, '/');\n    };\n    /**\n     * @Author: 水痕\n     * @Date: 2020-07-10 13:04:31\n     * @LastEditors: 水痕\n     * @Description: 将数据转换为base64\n     * @param {type}\n     * @return:\n     */\n    NodeSSO.prototype.toBase64 = function (content) {\n        if (typeof content === 'object') {\n            content = JSON.stringify(content);\n        }\n        return this.base64URLEscape(Buffer.from(content).toString('base64'));\n    };\n    /**\n     * @Author: 水痕\n     * @Date: 2020-07-10 13:06:03\n     * @LastEditors: 水痕\n     * @Description: 根据用户传递的内容进行签名\n     * @param {type}\n     * @return:\n     */\n    NodeSSO.prototype.signHandle = function (content) {\n        var result = crypto.createHmac('sha256', this.secret).update(content).digest('base64');\n        return this.base64URLEscape(result);\n    };\n    return NodeSSO;\n}());\nexports.NodeSSO = NodeSSO;\nexports.default = NodeSSO;\n"]}