1
0
mirror of https://github.com/snobu/destreamer.git synced 2026-01-17 05:22:18 +00:00
Files
destreamer-mirror/TokenCache.ts
2020-03-30 16:00:05 +03:00

42 lines
986 B
TypeScript

import * as fs from 'fs';
const jwtDecode = require('jwt-decode');
export class TokenCache {
public Read(): string | null {
let token = null;
try {
token = fs.readFileSync(".token_cache", "utf8");
}
catch (e) {
console.error(e);
return null;
}
interface Jwt {
[key: string]: any
}
const decodedJwt: Jwt = jwtDecode(token);
let now = Math.floor(Date.now() / 1000);
let exp = decodedJwt["exp"];
let timeLeft = exp - now;
if (timeLeft < 120) {
return null;
}
return token;
}
public Write(token: string): void {
fs.writeFile(".token_cache", token, (err: any) => {
if (err) {
return console.error(err);
}
console.log("Fresh access token dropped into .token_cache");
});
}
}