aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/src/models/authentication.ts
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/framework/src/models/authentication.ts')
-rw-r--r--sdnr/wt/odlux/framework/src/models/authentication.ts50
1 files changed, 50 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/framework/src/models/authentication.ts b/sdnr/wt/odlux/framework/src/models/authentication.ts
new file mode 100644
index 000000000..44b5ae436
--- /dev/null
+++ b/sdnr/wt/odlux/framework/src/models/authentication.ts
@@ -0,0 +1,50 @@
+import * as JWT from 'jsonwebtoken';
+
+export interface IUserInfo {
+ iss: string,
+ iat: number,
+ exp: number,
+ aud: string,
+ sub: string,
+ firstName: string,
+ lastName: string,
+ email: string,
+ role: string[]
+}
+
+
+export class User {
+
+ public _userInfo: IUserInfo | null;
+
+ constructor(private _bearerToken: string) {
+ //const pem = require('raw-loader!../assets/publicKey.pem');
+ const pem = "kFfAgpf806IKa4z88EEk6Lim7NMGicrw99OmIB38myM9CS44nEmMNJxnFu3ImViS248wSwkuZ3HvrhsPrA1ZFRNb1a6CEtGN4DaPJbfuo35qMp50tIEpy8nsSFpayOBE";
+
+ try {
+ const dec = (JWT.verify(_bearerToken, pem)) as IUserInfo;
+ this._userInfo = dec;
+ } catch (ex) {
+ this._userInfo = null;
+ }
+ }
+
+ public get user(): string | null {
+ return this._userInfo && this._userInfo.email;
+ };
+
+ public get roles(): string[] | null {
+ return this._userInfo && this._userInfo.role;
+ }
+ public get token(): string | null {
+ return this._userInfo && this._bearerToken;
+ }
+
+ public isInRole(role: string | string[]): boolean {
+ return false;
+ }
+
+}
+
+// key:kFfAgpf806IKa4z88EEk6Lim7NMGicrw99OmIB38myM9CS44nEmMNJxnFu3ImViS248wSwkuZ3HvrhsPrA1ZFRNb1a6CEtGN4DaPJbfuo35qMp50tIEpy8nsSFpayOBE
+// token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPRExVWCIsImlhdCI6MTUzODQ2NDMyMCwiZXhwIjoxNTcwMDAwMzIwLCJhdWQiOiJsb2NhbGhvc3QiLCJzdWIiOiJsb2NhbGhvc3QiLCJmaXJzdE5hbWUiOiJNYXgiLCJsYXN0TmFtZSI6Ik11c3Rlcm1hbm4iLCJlbWFpbCI6Im1heEBvZGx1eC5jb20iLCJyb2xlIjpbInVzZXIiLCJhZG1pbiJdfQ.9e5hDi2uxmIXNwHkJoScBZsHBk0jQ8CcZ7YIcZhDtuI \ No newline at end of file