UNPKG

@bixi/auth

Version:
97 lines 6.13 kB
/** * @fileoverview added by tsickle * Generated from: src/token/jwt/jwt.model.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { urlBase64Decode } from './jwt.helper'; /** * @record */ export function JWT() { } if (false) { /** * Issuerd * @type {?} */ JWT.prototype.iss; /** * Issued At * @type {?} */ JWT.prototype.iat; /** * Subject * @type {?} */ JWT.prototype.sub; /** * Expiration Time * @type {?} */ JWT.prototype.exp; /** * Audience * @type {?} */ JWT.prototype.aud; /** * Not Before * @type {?} */ JWT.prototype.nbf; /** * JWT ID * @type {?} */ JWT.prototype.jti; /* Skipping unhandled member: [key: string]: any;*/ /* Skipping unhandled member: [key: number]: any;*/ } export class JWTTokenModel { /** * 获取载荷信息 * @return {?} */ get payload() { /** @type {?} */ const parts = (this.token || '').split('.'); if (parts.length !== 3) throw new Error('JWT must have 3 parts'); /** @type {?} */ const decoded = urlBase64Decode(parts[1]); return JSON.parse(decoded); } /** * 获取过期时间戳(单位:ms) * @return {?} */ get exp() { /** @type {?} */ const decoded = this.payload; if (!decoded.hasOwnProperty('exp')) return null; /** @type {?} */ const date = new Date(0); date.setUTCSeconds(decoded.exp); return date.valueOf(); } /** * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null` * * @param {?=} offsetSeconds 偏移量 * @return {?} */ isExpired(offsetSeconds = 0) { /** @type {?} */ const exp = this.exp; if (exp == null) return null; return !(exp > new Date().valueOf() + offsetSeconds * 1000); } } if (false) { /** @type {?} */ JWTTokenModel.prototype.token; /* Skipping unhandled member: [key: string]: any;*/ } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9zdGV2ZW56aG9uZy9Db2RlL3dvcmtDb2RlL2JpeGlfYW5ndWxhci9wYWNrYWdlcy9hdXRoLyIsInNvdXJjZXMiOlsic3JjL3Rva2VuL2p3dC9qd3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRy9DLHlCQWtDQzs7Ozs7O0lBOUJDLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7OztJQUlaLGtCQUFZOzs7O0FBUWQsTUFBTSxPQUFPLGFBQWE7Ozs7O0lBU3hCLElBQUksT0FBTzs7Y0FDSCxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDM0MsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7O2NBRTNELE9BQU8sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7OztJQUtELElBQUksR0FBRzs7Y0FDQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU87UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7O2NBQzFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7Ozs7OztJQU9ELFNBQVMsQ0FBQyxnQkFBd0IsQ0FBQzs7Y0FDM0IsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHO1FBQ3BCLElBQUksR0FBRyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUU3QixPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGOzs7SUFuQ0MsOEJBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRva2VuTW9kZWwgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdXJsQmFzZTY0RGVjb2RlIH0gZnJvbSAnLi9qd3QuaGVscGVyJztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmludGVyZmFjZS1uYW1lXG5leHBvcnQgaW50ZXJmYWNlIEpXVCB7XG4gIC8qKlxuICAgKiBJc3N1ZXJkXG4gICAqL1xuICBpc3M6IHN0cmluZztcbiAgLyoqXG4gICAqIElzc3VlZCBBdFxuICAgKi9cbiAgaWF0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdWJqZWN0XG4gICAqL1xuICBzdWI6IHN0cmluZztcbiAgLyoqXG4gICAqIEV4cGlyYXRpb24gVGltZVxuICAgKi9cbiAgZXhwOiBudW1iZXI7XG4gIC8qKlxuICAgKiBBdWRpZW5jZVxuICAgKi9cbiAgYXVkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOb3QgQmVmb3JlXG4gICAqL1xuICBuYmY6IHN0cmluZztcbiAgLyoqXG4gICAqIEpXVCBJRFxuICAgKi9cbiAganRpOiBzdHJpbmc7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgW2tleTogbnVtYmVyXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgSldUVG9rZW5Nb2RlbCBpbXBsZW1lbnRzIElUb2tlbk1vZGVsIHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgdG9rZW46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIOiOt+WPlui9veiNt+S/oeaBr1xuICAgKi9cbiAgZ2V0IHBheWxvYWQoKTogSldUIHtcbiAgICBjb25zdCBwYXJ0cyA9ICh0aGlzLnRva2VuIHx8ICcnKS5zcGxpdCgnLicpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHRocm93IG5ldyBFcnJvcignSldUIG11c3QgaGF2ZSAzIHBhcnRzJyk7XG5cbiAgICBjb25zdCBkZWNvZGVkID0gdXJsQmFzZTY0RGVjb2RlKHBhcnRzWzFdKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bov4fmnJ/ml7bpl7TmiLPvvIjljZXkvY3vvJptc++8iVxuICAgKi9cbiAgZ2V0IGV4cCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5wYXlsb2FkO1xuICAgIGlmICghZGVjb2RlZC5oYXNPd25Qcm9wZXJ0eSgnZXhwJykpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgICBkYXRlLnNldFVUQ1NlY29uZHMoZGVjb2RlZC5leHApO1xuICAgIHJldHVybiBkYXRlLnZhbHVlT2YoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmo4Dmn6VUb2tlbuaYr+WQpui/h+acn++8jOW9k2BwYXlsb2FkYCDljIXlkKsgYGV4cGAg5a2X5q615pe25pyJ5pWI77yM6Iul5pegIGBleHBgIOWtl+auteebtOaOpei/lOWbniBgbnVsbGBcbiAgICpcbiAgICogQHBhcmFtIG9mZnNldFNlY29uZHMg5YGP56e76YePXG4gICAqL1xuICBpc0V4cGlyZWQob2Zmc2V0U2Vjb25kczogbnVtYmVyID0gMCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBjb25zdCBleHAgPSB0aGlzLmV4cDtcbiAgICBpZiAoZXhwID09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuICEoZXhwID4gbmV3IERhdGUoKS52YWx1ZU9mKCkgKyBvZmZzZXRTZWNvbmRzICogMTAwMCk7XG4gIH1cbn1cbiJdfQ==