@bixi/auth
Version:
97 lines • 6.13 kB
JavaScript
/**
* @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==