UNPKG

bixi

Version:

企业级中后台前端解决方案

34 lines (31 loc) 1.04 kB
import { HttpRequest } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { BixiAuthConfig } from '../../config.type'; import { BaseInterceptor } from '../base.interceptor'; import { CheckJwt } from '../helper'; import { BIXI_SERVICE_TOKEN } from '../interface'; import { JWTTokenModel } from './jwt.model'; /** * JWT 拦截器 * * ``` * // app.module.ts * { provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true} * ``` */ @Injectable() export class JWTInterceptor extends BaseInterceptor { isAuth(options: BixiAuthConfig): boolean { this.model = this.injector.get(BIXI_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel); // tslint:disable-next-line:no-non-null-assertion return CheckJwt(this.model as JWTTokenModel, options.token_exp_offset!); } // tslint:disable-next-line:no-any setReq(req: HttpRequest<any>, _options: BixiAuthConfig): HttpRequest<any> { return req.clone({ setHeaders: { Authorization: `Bearer ${ this.model.token }` } }); } }