UNPKG

bixi

Version:

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

32 lines (28 loc) 1.27 kB
import { DOCUMENT } from '@angular/common'; import { Injector } from '@angular/core'; import { Router } from '@angular/router'; import { BixiAuthConfig } from '../config.type'; import { BIXI_SERVICE_TOKEN, ITokenService } from './interface'; import { JWTTokenModel } from './jwt/jwt.model'; import { SimpleTokenModel } from './simple/simple.model'; export function CheckSimple(model: SimpleTokenModel | null): boolean { return model != null && typeof model.token === 'string' && model.token.length > 0; } export function CheckJwt(model: JWTTokenModel, offset: number): boolean { return model != null && !!model.token && !model.isExpired(offset); } export function ToLogin(options: BixiAuthConfig, injector: Injector, url?: string) { const router = injector.get<Router>(Router); // tslint:disable-next-line:no-non-null-assertion (injector.get(BIXI_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url; if (options.token_invalid_redirect === true) { setTimeout(() => { // tslint:disable-next-line:no-non-null-assertion if (/^https?:\/\//g.test(options.login_url!)) { injector.get(DOCUMENT).location.href = options.login_url as string; } else { router.navigate([options.login_url]); } }); } }