UNPKG

ohayolibs

Version:

Ohayo is a set of essential modules for ohayojp.

30 lines (26 loc) 1.16 kB
import { DOCUMENT } from '@angular/common'; import { Injector } from '@angular/core'; import { Router } from '@angular/router'; import { OhayoAuthConfig } from '@ohayo/util'; import { DA_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: OhayoAuthConfig, injector: Injector, url?: string): void { const router = injector.get<Router>(Router); (injector.get(DA_SERVICE_TOKEN) as ITokenService).referrer!.url = url || router.url; if (options.token_invalid_redirect === true) { setTimeout(() => { if (/^https?:\/\//g.test(options.login_url!)) { injector.get(DOCUMENT).location.href = options.login_url as string; } else { router.navigate([options.login_url]); } }); } }