6c463ad05498e66599092a7b3b970010e4975cc8
[ccsdk/features.git] / sdnr / wt / odlux / framework / src / models / authentication.ts
1
2 export type AuthToken = {
3   username: string;
4   access_token: string;
5   token_type: string;
6   expires: number;
7 }
8
9
10 export class User {
11
12   constructor (private _bearerToken: AuthToken) {
13
14   }
15
16   public get user(): string | null {
17     return this._bearerToken && this._bearerToken.username;
18   };
19
20   public get token(): string | null {
21     return this._bearerToken && this._bearerToken.access_token;
22   }
23
24   public get tokenType(): string | null {
25     return this._bearerToken && this._bearerToken.token_type;
26   }
27
28   public get isValid(): boolean {
29     return (this._bearerToken && (new Date().valueOf()) < this._bearerToken.expires) || false;
30   }
31
32   public toString() {
33     return JSON.stringify(this._bearerToken);
34   }
35
36   public static fromString(data: string) {
37     return new User(JSON.parse(data));
38   }
39
40
41 }