@spinajs/rbac-http-user 2.0.193 → 2.0.195

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,11 @@ declare const rbacHttp: {
16
16
  maxDevices: number;
17
17
  service: string;
18
18
  };
19
+ session: {
20
+ cookie: {
21
+ sameSite: string;
22
+ };
23
+ };
19
24
  password: {
20
25
  tokenTTL: number;
21
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rbac-http.d.ts","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;YAsBR;;eAEG;;;QAGL;;WAEG;;;;CAQN,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"rbac-http.d.ts","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;YA2BR;;eAEG;;;QAGL;;WAEG;;;;CAQN,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -23,6 +23,11 @@ const rbacHttp = {
23
23
  maxDevices: 3,
24
24
  service: 'FingerprintJs',
25
25
  },
26
+ session: {
27
+ cookie: {
28
+ sameSite: 'lax'
29
+ }
30
+ },
26
31
  password: {
27
32
  // password reset token ttl in minutes
28
33
  tokenTTL: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"rbac-http.js","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,CAAC;AAGD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;IACD,IAAI,EAAE;QACJ,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;SAC7B;QACD,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,sCAAsC;YACtC,QAAQ,EAAE,EAAE;YAEZ;;eAEG;YACH,kBAAkB,EAAE,CAAC;SACtB;QACD;;WAEG;QACH,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;IACJ,iBAAiB;IACjB,+CAA+C;IAC/C,KAAK;KACN;CACF,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"rbac-http.js","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,CAAC;AAGD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;IACD,IAAI,EAAE;QACJ,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;SAC7B;QACD,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,eAAe;SACzB;QACD,OAAO,EAAC;YACN,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,QAAQ,EAAE;YACR,sCAAsC;YACtC,QAAQ,EAAE,EAAE;YAEZ;;eAEG;YACH,kBAAkB,EAAE,CAAC;SACtB;QACD;;WAEG;QACH,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;IACJ,iBAAiB;IACjB,+CAA+C;IAC/C,KAAK;KACN;CACF,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -2,12 +2,15 @@ import { UserLoginDto } from '../dto/userLogin-dto.js';
2
2
  import { BaseController, Ok, Unauthorized } from '@spinajs/http';
3
3
  import { AuthProvider, SessionProvider } from '@spinajs/rbac';
4
4
  import { Configuration } from '@spinajs/configuration';
5
+ import { User } from '@spinajs/rbac';
5
6
  export declare class LoginController extends BaseController {
6
7
  protected Configuration: Configuration;
7
8
  protected AuthProvider: AuthProvider;
8
9
  protected SessionProvider: SessionProvider;
9
10
  protected SessionExpirationTime: number;
11
+ protected SessionCookieConfig: any;
10
12
  login(credentials: UserLoginDto): Promise<Ok | Unauthorized>;
11
13
  logout(ssid: string): Promise<Ok>;
14
+ whoami(User: User): Promise<Ok>;
12
15
  }
13
16
  //# sourceMappingURL=LoginController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,EAAE,EAAe,YAAY,EAAU,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA6B,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIlF,qBACa,eAAgB,SAAQ,cAAc;IAEjD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAK3C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAI3B,KAAK,CAAS,WAAW,EAAE,YAAY;IAwJvC,MAAM,CAAW,IAAI,EAAE,MAAM;CA0G3C"}
1
+ {"version":3,"file":"LoginController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,EAAE,EAAe,YAAY,EAAU,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA6B,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,qBACa,eAAgB,SAAQ,cAAc;IAEjD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAK3C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGxC,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAItB,KAAK,CAAS,WAAW,EAAE,YAAY;IA4JvC,MAAM,CAAW,IAAI,EAAE,MAAM;IA4B7B,MAAM,CAAiB,IAAI,EAAE,IAAI;CA0F/C"}
@@ -19,6 +19,7 @@ const rbac_1 = require("@spinajs/rbac");
19
19
  const di_1 = require("@spinajs/di");
20
20
  const configuration_1 = require("@spinajs/configuration");
21
21
  const rbac_http_1 = require("@spinajs/rbac-http");
22
+ const rbac_2 = require("@spinajs/rbac");
22
23
  let LoginController = class LoginController extends http_1.BaseController {
23
24
  async login(credentials) {
24
25
  try {
@@ -42,6 +43,9 @@ let LoginController = class LoginController extends http_1.BaseController {
42
43
  httpOnly: true,
43
44
  // set expiration time in ms
44
45
  maxAge: this.SessionExpirationTime * 1000,
46
+ // any optopnal cookie options
47
+ // or override default ones
48
+ ...this.SessionCookieConfig
45
49
  },
46
50
  },
47
51
  ],
@@ -159,11 +163,18 @@ let LoginController = class LoginController extends http_1.BaseController {
159
163
  Options: {
160
164
  httpOnly: true,
161
165
  maxAge: 0,
166
+ // any optopnal cookie options
167
+ // or override default ones
168
+ ...this.SessionCookieConfig
162
169
  },
163
170
  },
164
171
  ],
165
172
  });
166
173
  }
174
+ async whoami(User) {
175
+ // user is taken from session data
176
+ return new http_1.Ok(User);
177
+ }
167
178
  };
168
179
  exports.LoginController = LoginController;
169
180
  __decorate([
@@ -184,6 +195,10 @@ __decorate([
184
195
  }),
185
196
  __metadata("design:type", Number)
186
197
  ], LoginController.prototype, "SessionExpirationTime", void 0);
198
+ __decorate([
199
+ (0, configuration_1.Config)('rbac.session.cookie', {}),
200
+ __metadata("design:type", Object)
201
+ ], LoginController.prototype, "SessionCookieConfig", void 0);
187
202
  __decorate([
188
203
  (0, http_1.Post)(),
189
204
  (0, http_1.Policy)(rbac_http_1.NotLoggedPolicy),
@@ -200,6 +215,14 @@ __decorate([
200
215
  __metadata("design:paramtypes", [String]),
201
216
  __metadata("design:returntype", Promise)
202
217
  ], LoginController.prototype, "logout", null);
218
+ __decorate([
219
+ (0, http_1.Get)(),
220
+ (0, http_1.Policy)(rbac_http_1.LoggedPolicy),
221
+ __param(0, (0, rbac_http_1.User)()),
222
+ __metadata("design:type", Function),
223
+ __metadata("design:paramtypes", [rbac_2.User]),
224
+ __metadata("design:returntype", Promise)
225
+ ], LoginController.prototype, "whoami", null);
203
226
  exports.LoginController = LoginController = __decorate([
204
227
  (0, http_1.BasePath)('auth')
205
228
  ], LoginController);
@@ -1 +1 @@
1
- {"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,11 @@ declare const rbacHttp: {
16
16
  maxDevices: number;
17
17
  service: string;
18
18
  };
19
+ session: {
20
+ cookie: {
21
+ sameSite: string;
22
+ };
23
+ };
19
24
  password: {
20
25
  tokenTTL: number;
21
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rbac-http.d.ts","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;YAsBR;;eAEG;;;QAGL;;WAEG;;;;CAQN,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"rbac-http.d.ts","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;YA2BR;;eAEG;;;QAGL;;WAEG;;;;CAQN,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -21,6 +21,11 @@ const rbacHttp = {
21
21
  maxDevices: 3,
22
22
  service: 'FingerprintJs',
23
23
  },
24
+ session: {
25
+ cookie: {
26
+ sameSite: 'lax'
27
+ }
28
+ },
24
29
  password: {
25
30
  // password reset token ttl in minutes
26
31
  tokenTTL: 60,
@@ -1 +1 @@
1
- {"version":3,"file":"rbac-http.js","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,CAAC;AAGD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;IACD,IAAI,EAAE;QACJ,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;SAC7B;QACD,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,sCAAsC;YACtC,QAAQ,EAAE,EAAE;YAEZ;;eAEG;YACH,kBAAkB,EAAE,CAAC;SACtB;QACD;;WAEG;QACH,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;IACJ,iBAAiB;IACjB,+CAA+C;IAC/C,KAAK;KACN;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"rbac-http.js","sourceRoot":"","sources":["../../../src/config/rbac-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,CAAC;AAGD,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;IACD,IAAI,EAAE;QACJ,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;SAC7B;QACD,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,eAAe;SACzB;QACD,OAAO,EAAC;YACN,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,QAAQ,EAAE;YACR,sCAAsC;YACtC,QAAQ,EAAE,EAAE;YAEZ;;eAEG;YACH,kBAAkB,EAAE,CAAC;SACtB;QACD;;WAEG;QACH,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;IACJ,iBAAiB;IACjB,+CAA+C;IAC/C,KAAK;KACN;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -2,12 +2,15 @@ import { UserLoginDto } from '../dto/userLogin-dto.js';
2
2
  import { BaseController, Ok, Unauthorized } from '@spinajs/http';
3
3
  import { AuthProvider, SessionProvider } from '@spinajs/rbac';
4
4
  import { Configuration } from '@spinajs/configuration';
5
+ import { User } from '@spinajs/rbac';
5
6
  export declare class LoginController extends BaseController {
6
7
  protected Configuration: Configuration;
7
8
  protected AuthProvider: AuthProvider;
8
9
  protected SessionProvider: SessionProvider;
9
10
  protected SessionExpirationTime: number;
11
+ protected SessionCookieConfig: any;
10
12
  login(credentials: UserLoginDto): Promise<Ok | Unauthorized>;
11
13
  logout(ssid: string): Promise<Ok>;
14
+ whoami(User: User): Promise<Ok>;
12
15
  }
13
16
  //# sourceMappingURL=LoginController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,EAAE,EAAe,YAAY,EAAU,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA6B,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIlF,qBACa,eAAgB,SAAQ,cAAc;IAEjD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAK3C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAI3B,KAAK,CAAS,WAAW,EAAE,YAAY;IAwJvC,MAAM,CAAW,IAAI,EAAE,MAAM;CA0G3C"}
1
+ {"version":3,"file":"LoginController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,EAAE,EAAe,YAAY,EAAU,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA6B,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,qBACa,eAAgB,SAAQ,cAAc;IAEjD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAK3C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGxC,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAItB,KAAK,CAAS,WAAW,EAAE,YAAY;IA4JvC,MAAM,CAAW,IAAI,EAAE,MAAM;IA4B7B,MAAM,CAAiB,IAAI,EAAE,IAAI;CA0F/C"}
@@ -15,7 +15,8 @@ import { BaseController, BasePath, Post, Body, Ok, Get, Cookie, Unauthorized, Po
15
15
  import { AuthProvider, SessionProvider, auth, UserSession } from '@spinajs/rbac';
16
16
  import { Autoinject } from '@spinajs/di';
17
17
  import { AutoinjectService, Config, Configuration } from '@spinajs/configuration';
18
- import { LoggedPolicy, NotLoggedPolicy } from '@spinajs/rbac-http';
18
+ import { LoggedPolicy, NotLoggedPolicy, User as UserRouteArg } from '@spinajs/rbac-http';
19
+ import { User } from '@spinajs/rbac';
19
20
  let LoginController = class LoginController extends BaseController {
20
21
  async login(credentials) {
21
22
  try {
@@ -39,6 +40,9 @@ let LoginController = class LoginController extends BaseController {
39
40
  httpOnly: true,
40
41
  // set expiration time in ms
41
42
  maxAge: this.SessionExpirationTime * 1000,
43
+ // any optopnal cookie options
44
+ // or override default ones
45
+ ...this.SessionCookieConfig
42
46
  },
43
47
  },
44
48
  ],
@@ -156,11 +160,18 @@ let LoginController = class LoginController extends BaseController {
156
160
  Options: {
157
161
  httpOnly: true,
158
162
  maxAge: 0,
163
+ // any optopnal cookie options
164
+ // or override default ones
165
+ ...this.SessionCookieConfig
159
166
  },
160
167
  },
161
168
  ],
162
169
  });
163
170
  }
171
+ async whoami(User) {
172
+ // user is taken from session data
173
+ return new Ok(User);
174
+ }
164
175
  };
165
176
  __decorate([
166
177
  Autoinject(),
@@ -180,6 +191,10 @@ __decorate([
180
191
  }),
181
192
  __metadata("design:type", Number)
182
193
  ], LoginController.prototype, "SessionExpirationTime", void 0);
194
+ __decorate([
195
+ Config('rbac.session.cookie', {}),
196
+ __metadata("design:type", Object)
197
+ ], LoginController.prototype, "SessionCookieConfig", void 0);
183
198
  __decorate([
184
199
  Post(),
185
200
  Policy(NotLoggedPolicy),
@@ -196,6 +211,14 @@ __decorate([
196
211
  __metadata("design:paramtypes", [String]),
197
212
  __metadata("design:returntype", Promise)
198
213
  ], LoginController.prototype, "logout", null);
214
+ __decorate([
215
+ Get(),
216
+ Policy(LoggedPolicy),
217
+ __param(0, UserRouteArg()),
218
+ __metadata("design:type", Function),
219
+ __metadata("design:paramtypes", [User]),
220
+ __metadata("design:returntype", Promise)
221
+ ], LoginController.prototype, "whoami", null);
199
222
  LoginController = __decorate([
200
223
  BasePath('auth')
201
224
  ], LoginController);
@@ -1 +1 @@
1
- {"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../../src/controllers/LoginController.ts"],"names":[],"mappings":"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"}