kyodo.dorks
Version:
TypeScript API wrapper for Kyodo: Communities & Chats
37 lines (36 loc) • 1.33 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.tokenHasExpired = exports.generateXSig = exports.generateXSignature = exports.generateRandomValue = void 0;
const jsonwebtoken_1 = require("jsonwebtoken");
const crypto_1 = require("crypto");
const constants_1 = require("../constants");
const private_1 = require("../private");
const generateRandomValue = () => { return Math.random().toString(36).substring(2, 15); };
exports.generateRandomValue = generateRandomValue;
const generateXSignature = () => {
return (0, jsonwebtoken_1.sign)({ exp: Date.now(), typeof: 'xSig' }, constants_1.SIGNATURE_KEY, {
algorithm: 'HS256',
header: {
alg: 'HS256',
typ: 'JWT'
}
});
};
exports.generateXSignature = generateXSignature;
const generateXSig = (credentials) => {
return (0, crypto_1.createHash)('sha256')
.update(JSON.stringify(credentials))
.digest('hex');
};
exports.generateXSig = generateXSig;
const tokenHasExpired = (token) => {
try {
const payload = private_1.TokenPayloadSchema.parse(JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString('utf-8')));
return payload.exp < (Date.now() / 1000);
}
catch (_a) {
return true;
}
;
};
exports.tokenHasExpired = tokenHasExpired;
;