@spinajs/rbac-http 2.0.46 → 2.0.50
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.
- package/README.md +11 -11
- package/lib/2fa/SpeakEasy2FaToken.d.ts +2 -1
- package/lib/2fa/SpeakEasy2FaToken.d.ts.map +1 -0
- package/lib/2fa/SpeakEasy2FaToken.js +11 -37
- package/lib/2fa/SpeakEasy2FaToken.js.map +1 -1
- package/lib/config/rbac-http.d.ts +1 -0
- package/lib/config/rbac-http.d.ts.map +1 -0
- package/lib/config/rbac-http.js +2 -4
- package/lib/config/rbac-http.js.map +1 -1
- package/lib/controllers/LoginController.d.ts +7 -6
- package/lib/controllers/LoginController.d.ts.map +1 -0
- package/lib/controllers/LoginController.js +89 -92
- package/lib/controllers/LoginController.js.map +1 -1
- package/lib/controllers/TwoFactorAuthController.d.ts +4 -3
- package/lib/controllers/TwoFactorAuthController.d.ts.map +1 -0
- package/lib/controllers/TwoFactorAuthController.js +31 -34
- package/lib/controllers/TwoFactorAuthController.js.map +1 -1
- package/lib/controllers/UserAdminController.d.ts +1 -0
- package/lib/controllers/UserAdminController.d.ts.map +1 -0
- package/lib/controllers/UserAdminController.js +6 -9
- package/lib/controllers/UserAdminController.js.map +1 -1
- package/lib/controllers/UserController.d.ts +2 -1
- package/lib/controllers/UserController.d.ts.map +1 -0
- package/lib/controllers/UserController.js +30 -56
- package/lib/controllers/UserController.js.map +1 -1
- package/lib/controllers/UserMetadata.d.ts +1 -0
- package/lib/controllers/UserMetadata.d.ts.map +1 -0
- package/lib/controllers/UserMetadata.js +24 -28
- package/lib/controllers/UserMetadata.js.map +1 -1
- package/lib/decorators.d.ts +2 -1
- package/lib/decorators.d.ts.map +1 -0
- package/lib/decorators.js +16 -24
- package/lib/decorators.js.map +1 -1
- package/lib/dto/login-dto.d.ts +1 -0
- package/lib/dto/login-dto.d.ts.map +1 -0
- package/lib/dto/login-dto.js +4 -7
- package/lib/dto/login-dto.js.map +1 -1
- package/lib/dto/password-dto.d.ts +1 -0
- package/lib/dto/password-dto.d.ts.map +1 -0
- package/lib/dto/password-dto.js +4 -7
- package/lib/dto/password-dto.js.map +1 -1
- package/lib/dto/restore-password-dto.d.ts +1 -0
- package/lib/dto/restore-password-dto.d.ts.map +1 -0
- package/lib/dto/restore-password-dto.js +4 -7
- package/lib/dto/restore-password-dto.js.map +1 -1
- package/lib/dto/token-dto.d.ts +1 -0
- package/lib/dto/token-dto.d.ts.map +1 -0
- package/lib/dto/token-dto.js +4 -7
- package/lib/dto/token-dto.js.map +1 -1
- package/lib/dto/user-dto.d.ts +1 -0
- package/lib/dto/user-dto.d.ts.map +1 -0
- package/lib/dto/user-dto.js +4 -7
- package/lib/dto/user-dto.js.map +1 -1
- package/lib/dto/userLogin-dto.d.ts +1 -0
- package/lib/dto/userLogin-dto.d.ts.map +1 -0
- package/lib/dto/userLogin-dto.js +4 -7
- package/lib/dto/userLogin-dto.js.map +1 -1
- package/lib/events/UserLoginFailed.d.ts +1 -0
- package/lib/events/UserLoginFailed.d.ts.map +1 -0
- package/lib/events/UserLoginFailed.js +4 -7
- package/lib/events/UserLoginFailed.js.map +1 -1
- package/lib/events/UserLoginSuccess.d.ts +1 -0
- package/lib/events/UserLoginSuccess.d.ts.map +1 -0
- package/lib/events/UserLoginSuccess.js +4 -7
- package/lib/events/UserLoginSuccess.js.map +1 -1
- package/lib/events/UserPassordRestore.d.ts +1 -0
- package/lib/events/UserPassordRestore.d.ts.map +1 -0
- package/lib/events/UserPassordRestore.js +4 -7
- package/lib/events/UserPassordRestore.js.map +1 -1
- package/lib/fingerprint/FingerprintJs.d.ts +2 -1
- package/lib/fingerprint/FingerprintJs.d.ts.map +1 -0
- package/lib/fingerprint/FingerprintJs.js +5 -8
- package/lib/fingerprint/FingerprintJs.js.map +1 -1
- package/lib/index.d.ts +9 -8
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -24
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +2 -1
- package/lib/interfaces.d.ts.map +1 -0
- package/lib/interfaces.js +2 -7
- package/lib/interfaces.js.map +1 -1
- package/lib/middlewares/AttributeFilter.d.ts +1 -0
- package/lib/middlewares/AttributeFilter.d.ts.map +1 -0
- package/lib/middlewares/AttributeFilter.js +2 -6
- package/lib/middlewares/AttributeFilter.js.map +1 -1
- package/lib/middlewares.d.ts +1 -0
- package/lib/middlewares.d.ts.map +1 -0
- package/lib/middlewares.js +13 -39
- package/lib/middlewares.js.map +1 -1
- package/lib/policies/2FaPolicy.d.ts +2 -1
- package/lib/policies/2FaPolicy.d.ts.map +1 -0
- package/lib/policies/2FaPolicy.js +6 -10
- package/lib/policies/2FaPolicy.js.map +1 -1
- package/lib/policies/LoggedPolicy.d.ts +1 -0
- package/lib/policies/LoggedPolicy.d.ts.map +1 -0
- package/lib/policies/LoggedPolicy.js +4 -8
- package/lib/policies/LoggedPolicy.js.map +1 -1
- package/lib/policies/NotLoggedPolicy.d.ts +1 -0
- package/lib/policies/NotLoggedPolicy.d.ts.map +1 -0
- package/lib/policies/NotLoggedPolicy.js +4 -8
- package/lib/policies/NotLoggedPolicy.js.map +1 -1
- package/lib/policies/RbacPolicy.d.ts +1 -0
- package/lib/policies/RbacPolicy.d.ts.map +1 -0
- package/lib/policies/RbacPolicy.js +17 -25
- package/lib/policies/RbacPolicy.js.map +1 -1
- package/lib/policies/captchaPolicy.d.ts +2 -0
- package/lib/policies/captchaPolicy.d.ts.map +1 -0
- package/lib/policies/captchaPolicy.js +1 -0
- package/lib/route-args.d.ts +2 -1
- package/lib/route-args.d.ts.map +1 -0
- package/lib/route-args.js +9 -12
- package/lib/route-args.js.map +1 -1
- package/lib/transformers.d.ts +1 -0
- package/lib/transformers.d.ts.map +1 -0
- package/lib/transformers.js +7 -13
- package/lib/transformers.js.map +1 -1
- package/package.json +66 -63
- package/lib/policies/AuthPolicy.d.ts +0 -9
- package/lib/policies/AuthPolicy.js +0 -23
- package/lib/policies/AuthPolicy.js.map +0 -1
- package/lib/policies.d.ts +0 -12
- package/lib/policies.js +0 -57
- package/lib/policies.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# `rbac-http`
|
|
2
|
-
|
|
3
|
-
> TODO: description
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
const rbacHttp = require('rbac-http');
|
|
9
|
-
|
|
10
|
-
// TODO: DEMONSTRATE API
|
|
11
|
-
```
|
|
1
|
+
# `rbac-http`
|
|
2
|
+
|
|
3
|
+
> TODO: description
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
const rbacHttp = require('rbac-http');
|
|
9
|
+
|
|
10
|
+
// TODO: DEMONSTRATE API
|
|
11
|
+
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TwoFactorAuthProvider } from '../interfaces';
|
|
1
|
+
import { TwoFactorAuthProvider } from '../interfaces.js';
|
|
2
2
|
import { User } from '@spinajs/rbac';
|
|
3
3
|
import { Log } from '@spinajs/log';
|
|
4
4
|
export declare class SpeakEasy2FaToken extends TwoFactorAuthProvider {
|
|
@@ -11,3 +11,4 @@ export declare class SpeakEasy2FaToken extends TwoFactorAuthProvider {
|
|
|
11
11
|
isEnabled(user: User): Promise<boolean>;
|
|
12
12
|
isInitialized(user: User): Promise<boolean>;
|
|
13
13
|
}
|
|
14
|
+
//# sourceMappingURL=SpeakEasy2FaToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpeakEasy2FaToken.d.ts","sourceRoot":"","sources":["../../src/2fa/SpeakEasy2FaToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,qBACa,iBAAkB,SAAQ,qBAAqB;IAE1D,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAGtB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;;IAMZ,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBxD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAMpC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAIzD"}
|
|
@@ -1,44 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
6
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
9
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const log_1 = require("@spinajs/log");
|
|
41
|
-
let SpeakEasy2FaToken = class SpeakEasy2FaToken extends interfaces_1.TwoFactorAuthProvider {
|
|
10
|
+
import { Injectable } from '@spinajs/di';
|
|
11
|
+
import { TwoFactorAuthProvider } from '../interfaces.js';
|
|
12
|
+
import * as speakeasy from 'speakeasy';
|
|
13
|
+
import { Config } from '@spinajs/configuration';
|
|
14
|
+
import { Log, Logger } from '@spinajs/log';
|
|
15
|
+
let SpeakEasy2FaToken = class SpeakEasy2FaToken extends TwoFactorAuthProvider {
|
|
42
16
|
constructor() {
|
|
43
17
|
super();
|
|
44
18
|
}
|
|
@@ -76,16 +50,16 @@ let SpeakEasy2FaToken = class SpeakEasy2FaToken extends interfaces_1.TwoFactorAu
|
|
|
76
50
|
}
|
|
77
51
|
};
|
|
78
52
|
__decorate([
|
|
79
|
-
|
|
53
|
+
Config('rbac.speakeasy'),
|
|
80
54
|
__metadata("design:type", Object)
|
|
81
55
|
], SpeakEasy2FaToken.prototype, "Config", void 0);
|
|
82
56
|
__decorate([
|
|
83
|
-
|
|
84
|
-
__metadata("design:type",
|
|
57
|
+
Logger('SPEAKEASY_2FA_TOKEN'),
|
|
58
|
+
__metadata("design:type", Log)
|
|
85
59
|
], SpeakEasy2FaToken.prototype, "Log", void 0);
|
|
86
60
|
SpeakEasy2FaToken = __decorate([
|
|
87
|
-
|
|
61
|
+
Injectable(TwoFactorAuthProvider),
|
|
88
62
|
__metadata("design:paramtypes", [])
|
|
89
63
|
], SpeakEasy2FaToken);
|
|
90
|
-
|
|
64
|
+
export { SpeakEasy2FaToken };
|
|
91
65
|
//# sourceMappingURL=SpeakEasy2FaToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeakEasy2FaToken.js","sourceRoot":"","sources":["../../src/2fa/SpeakEasy2FaToken.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpeakEasy2FaToken.js","sourceRoot":"","sources":["../../src/2fa/SpeakEasy2FaToken.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGpC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,qBAAqB;IAO1D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,OAAO,CAAC,CAAO;QACpB,yDAAyD;QACzD,gCAAgC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,IAAU;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5E,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,QAAQ;YAClB,KAAK;YACL,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAU;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAU;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,GAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAU;QACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACvD,OAAO,GAAG,KAAK,EAAE,CAAC;IACpB,CAAC;CACF,CAAA;AAlDC;IAAC,MAAM,CAAC,gBAAgB,CAAC;;iDACH;AAEtB;IAAC,MAAM,CAAC,qBAAqB,CAAC;8BACf,GAAG;8CAAC;AALR,iBAAiB;IAD7B,UAAU,CAAC,qBAAqB,CAAC;;GACrB,iBAAiB,CAmD7B;SAnDY,iBAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbac-http.d.ts","sourceRoot":"","sources":["../../src/config/rbac-http.ts"],"names":[],"mappings":""}
|
package/lib/config/rbac-http.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const path_1 = require("path");
|
|
1
|
+
import { join, normalize, resolve } from 'path';
|
|
4
2
|
function dir(path) {
|
|
5
|
-
return
|
|
3
|
+
return resolve(normalize(join(__dirname, path)));
|
|
6
4
|
}
|
|
7
5
|
module.exports = {
|
|
8
6
|
system: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-http.js","sourceRoot":"","sources":["../../src/config/rbac-http.ts"],"names":[],"mappings":"
|
|
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,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AACD,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9B,KAAK,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC3B;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;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE;QACX,0CAA0C;SAC3C;KACF;CACF,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { InvalidOperation } from '
|
|
2
|
-
import { UserLoginDto } from '../dto/userLogin-dto';
|
|
1
|
+
import { InvalidOperation } from '../../../exceptions/lib/index.js';
|
|
2
|
+
import { UserLoginDto } from '../dto/userLogin-dto.js';
|
|
3
3
|
import { BaseController, Ok, CookieResponse, Unauthorized, BadRequest, NotFound } from '@spinajs/http';
|
|
4
4
|
import { AuthProvider, FederatedAuthProvider, PasswordProvider, PasswordValidationProvider, SessionProvider, User as UserModel } from '@spinajs/rbac';
|
|
5
5
|
import { Configuration } from '@spinajs/configuration';
|
|
6
|
-
import { FingerprintProvider, TwoFactorAuthProvider } from '../interfaces';
|
|
6
|
+
import { FingerprintProvider, TwoFactorAuthProvider } from '../interfaces.js';
|
|
7
7
|
import { QueueClient } from '@spinajs/queue';
|
|
8
|
-
import { RestorePasswordDto } from '../dto/restore-password-dto';
|
|
8
|
+
import { RestorePasswordDto } from '../dto/restore-password-dto.js';
|
|
9
9
|
export declare class LoginController extends BaseController {
|
|
10
10
|
protected Configuration: Configuration;
|
|
11
11
|
protected AuthProvider: AuthProvider;
|
|
@@ -27,8 +27,9 @@ export declare class LoginController extends BaseController {
|
|
|
27
27
|
*/
|
|
28
28
|
federatedLoginList(): Promise<Ok>;
|
|
29
29
|
login(credentials: UserLoginDto): Promise<Unauthorized | CookieResponse>;
|
|
30
|
-
setNewPassword(token: string, pwd: RestorePasswordDto): Promise<
|
|
30
|
+
setNewPassword(token: string, pwd: RestorePasswordDto): Promise<NotFound | BadRequest>;
|
|
31
31
|
forgotPassword(login: UserLoginDto): Promise<InvalidOperation | Ok>;
|
|
32
|
-
logout(ssid: string): Promise<
|
|
32
|
+
logout(ssid: string): Promise<CookieResponse | Ok>;
|
|
33
33
|
protected authenticate(user: UserModel, federated?: boolean): Promise<Unauthorized | CookieResponse>;
|
|
34
34
|
}
|
|
35
|
+
//# sourceMappingURL=LoginController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginController.d.ts","sourceRoot":"","sources":["../../src/controllers/LoginController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,EAAE,EAAe,cAAc,EAAE,YAAY,EAAyB,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjK,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,0BAA0B,EAAW,eAAe,EAAQ,IAAI,IAAI,SAAS,EAAqC,MAAM,eAAe,CAAC;AAExM,OAAO,EAA6B,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAOpE,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,qBAAqB,EAAE,MAAM,CAAC;IAGxC,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGvD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAGnD,SAAS,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAGhE,SAAS,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;IAGjE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;IAIhB,cAAc,CAAS,WAAW,EAAE,OAAO,EAAkB,MAAM,EAAE,MAAM;IAexF;;;;;OAKG;IAGU,kBAAkB;IAMlB,KAAK,CAAS,WAAW,EAAE,YAAY;IAavC,cAAc,CAAU,KAAK,EAAE,MAAM,EAAU,GAAG,EAAE,kBAAkB;IA0EtE,cAAc,CAAS,KAAK,EAAE,YAAY;IAgC1C,MAAM,CAAW,IAAI,EAAE,MAAM;cAW1B,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO;CAoFlE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,36 +10,34 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const UserLoginSuccess_1 = require("../events/UserLoginSuccess");
|
|
32
|
-
let LoginController = class LoginController extends http_1.BaseController {
|
|
13
|
+
import { InvalidOperation } from '../../../exceptions/lib/index.js';
|
|
14
|
+
import { UserLoginDto } from '../dto/userLogin-dto.js';
|
|
15
|
+
import { BaseController, BasePath, Post, Body, Ok, Get, Cookie, CookieResponse, Unauthorized, Header, Policy, Query, BadRequest, NotFound } from '@spinajs/http';
|
|
16
|
+
import { AuthProvider, FederatedAuthProvider, PasswordProvider, PasswordValidationProvider, Session, SessionProvider, User, UserMetadata, UserPasswordChanged } from '@spinajs/rbac';
|
|
17
|
+
import { Autoinject } from '@spinajs/di';
|
|
18
|
+
import { AutoinjectService, Config, Configuration } from '@spinajs/configuration';
|
|
19
|
+
import { FingerprintProvider, TwoFactorAuthProvider } from '../interfaces.js';
|
|
20
|
+
import { QueueClient } from '@spinajs/queue';
|
|
21
|
+
import { NotLoggedPolicy } from '../policies/NotLoggedPolicy.js';
|
|
22
|
+
import { LoggedPolicy } from '../policies/LoggedPolicy.js';
|
|
23
|
+
import { UserPasswordRestore } from '../events/UserPassordRestore.js';
|
|
24
|
+
import { RestorePasswordDto } from '../dto/restore-password-dto.js';
|
|
25
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
26
|
+
import { DateTime } from 'luxon';
|
|
27
|
+
import { UserAction } from '@spinajs/rbac';
|
|
28
|
+
import { UserLoginSuccess } from '../events/UserLoginSuccess.js';
|
|
29
|
+
let LoginController = class LoginController extends BaseController {
|
|
33
30
|
async loginFederated(credentials, caller) {
|
|
34
31
|
const strategy = this.FederatedLoginStrategies.find((x) => x.callerCheck(caller));
|
|
35
32
|
if (!strategy) {
|
|
36
|
-
throw new
|
|
33
|
+
throw new InvalidOperation(`No auth stragegy registered for caller ${caller}`);
|
|
37
34
|
}
|
|
38
35
|
const result = await strategy.authenticate(credentials);
|
|
39
36
|
if (!result.Error) {
|
|
40
37
|
// proceed with standard authentication
|
|
41
38
|
return await this.authenticate(result.User);
|
|
42
39
|
}
|
|
43
|
-
return new
|
|
40
|
+
return new Unauthorized(result.Error);
|
|
44
41
|
}
|
|
45
42
|
/**
|
|
46
43
|
*
|
|
@@ -49,7 +46,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
49
46
|
* @returns response with avaible login strategies
|
|
50
47
|
*/
|
|
51
48
|
async federatedLoginList() {
|
|
52
|
-
return new
|
|
49
|
+
return new Ok(this.FederatedLoginStrategies.map((x) => x.Name));
|
|
53
50
|
}
|
|
54
51
|
async login(credentials) {
|
|
55
52
|
const result = await this.AuthProvider.authenticate(credentials.Email, credentials.Password);
|
|
@@ -57,11 +54,11 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
57
54
|
// proceed with standard authentication
|
|
58
55
|
return await this.authenticate(result.User);
|
|
59
56
|
}
|
|
60
|
-
return new
|
|
57
|
+
return new Unauthorized(result.Error);
|
|
61
58
|
}
|
|
62
59
|
async setNewPassword(token, pwd) {
|
|
63
|
-
const user = await
|
|
64
|
-
.innerJoin(
|
|
60
|
+
const user = await User.query()
|
|
61
|
+
.innerJoin(UserMetadata, function () {
|
|
65
62
|
this.where({
|
|
66
63
|
Key: 'password:reset:token',
|
|
67
64
|
Value: token,
|
|
@@ -70,7 +67,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
70
67
|
.populate('Metadata')
|
|
71
68
|
.first();
|
|
72
69
|
if (!user) {
|
|
73
|
-
return new
|
|
70
|
+
return new NotFound({
|
|
74
71
|
error: {
|
|
75
72
|
code: 'ERR_USER_NOT_FOUND',
|
|
76
73
|
message: 'No user found for this reset token',
|
|
@@ -78,9 +75,9 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
78
75
|
});
|
|
79
76
|
}
|
|
80
77
|
const val = (await user.Metadata['password:reset:start']);
|
|
81
|
-
const now =
|
|
78
|
+
const now = DateTime.now().plus({ seconds: -this.PasswordResetTokenTTL });
|
|
82
79
|
if (val < now) {
|
|
83
|
-
return new
|
|
80
|
+
return new BadRequest({
|
|
84
81
|
error: {
|
|
85
82
|
code: 'ERR_RESET_TOKEN_EXPIRED',
|
|
86
83
|
message: 'Password reset token expired',
|
|
@@ -88,7 +85,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
88
85
|
});
|
|
89
86
|
}
|
|
90
87
|
if (!this.PasswordValidationService.check(pwd.Password)) {
|
|
91
|
-
return new
|
|
88
|
+
return new BadRequest({
|
|
92
89
|
error: {
|
|
93
90
|
code: 'ERR_PASSWORD_RULE',
|
|
94
91
|
message: 'Invalid password, does not match password rules',
|
|
@@ -96,7 +93,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
96
93
|
});
|
|
97
94
|
}
|
|
98
95
|
if (pwd.Password !== pwd.ConfirmPassword) {
|
|
99
|
-
return new
|
|
96
|
+
return new BadRequest({
|
|
100
97
|
error: {
|
|
101
98
|
code: 'ERR_PASSWORD_NOT_MATCH',
|
|
102
99
|
message: 'Password and repeat password does not match',
|
|
@@ -111,52 +108,52 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
111
108
|
*/
|
|
112
109
|
await user.Metadata.delete(/password:reset.*/);
|
|
113
110
|
// add to action list
|
|
114
|
-
await user.Actions.add(new
|
|
111
|
+
await user.Actions.add(new UserAction({
|
|
115
112
|
Persistent: true,
|
|
116
113
|
Action: 'password:reset',
|
|
117
114
|
}));
|
|
118
115
|
// inform others
|
|
119
|
-
await this.Queue.emit(new
|
|
116
|
+
await this.Queue.emit(new UserPasswordChanged(user.Uuid));
|
|
120
117
|
}
|
|
121
118
|
async forgotPassword(login) {
|
|
122
119
|
const user = await this.AuthProvider.getByEmail(login.Email);
|
|
123
120
|
if (!user.IsActive || user.IsBanned || user.DeletedAt !== null) {
|
|
124
|
-
return new
|
|
121
|
+
return new InvalidOperation('User is inactive, banned or deleted. Contact system administrator');
|
|
125
122
|
}
|
|
126
|
-
const token = (
|
|
123
|
+
const token = uuidv4();
|
|
127
124
|
// assign meta to user
|
|
128
125
|
await (user.Metadata['password:reset'] = true);
|
|
129
126
|
await (user.Metadata['password:reset:token'] = token);
|
|
130
|
-
await (user.Metadata['password:reset:start'] =
|
|
131
|
-
await user.Actions.add(new
|
|
127
|
+
await (user.Metadata['password:reset:start'] = DateTime.now());
|
|
128
|
+
await user.Actions.add(new UserAction({
|
|
132
129
|
Action: 'user:password:reset',
|
|
133
|
-
Data:
|
|
130
|
+
Data: DateTime.now().toISO(),
|
|
134
131
|
Persistent: true,
|
|
135
132
|
}));
|
|
136
|
-
await this.Queue.emit(new
|
|
137
|
-
return new
|
|
133
|
+
await this.Queue.emit(new UserPasswordRestore(user.Uuid, token));
|
|
134
|
+
return new Ok({
|
|
138
135
|
reset_token: token,
|
|
139
136
|
ttl: this.PasswordResetTokenTTL,
|
|
140
137
|
});
|
|
141
138
|
}
|
|
142
139
|
async logout(ssid) {
|
|
143
140
|
if (!ssid) {
|
|
144
|
-
return new
|
|
141
|
+
return new Ok();
|
|
145
142
|
}
|
|
146
143
|
await this.SessionProvider.delete(ssid);
|
|
147
144
|
// send empty cookie to confirm session deletion
|
|
148
|
-
return new
|
|
145
|
+
return new CookieResponse('ssid', null, this.SessionExpirationTime);
|
|
149
146
|
}
|
|
150
147
|
async authenticate(user, federated) {
|
|
151
148
|
if (!user) {
|
|
152
|
-
return new
|
|
149
|
+
return new Unauthorized({
|
|
153
150
|
error: {
|
|
154
151
|
message: 'login or password incorrect',
|
|
155
152
|
},
|
|
156
153
|
});
|
|
157
154
|
}
|
|
158
155
|
await user.Metadata.populate();
|
|
159
|
-
const session = new
|
|
156
|
+
const session = new Session();
|
|
160
157
|
const dUser = user.dehydrate();
|
|
161
158
|
session.Data.set('User', dUser);
|
|
162
159
|
// we found user but we still dont know if is authorized
|
|
@@ -178,7 +175,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
178
175
|
const isInitialized = await this.TwoFactorAuthProvider.isInitialized(user);
|
|
179
176
|
if (!isInitialized) {
|
|
180
177
|
const twoFaResult = await this.TwoFactorAuthProvider.initialize(user);
|
|
181
|
-
return new
|
|
178
|
+
return new CookieResponse('ssid', session.SessionId, this.SessionExpirationTime, true, {
|
|
182
179
|
toFactorAuth: true,
|
|
183
180
|
twoFactorAuthFirstTime: true,
|
|
184
181
|
method: this.TwoFactorConfig.service,
|
|
@@ -189,7 +186,7 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
189
186
|
await this.TwoFactorAuthProvider.execute(user);
|
|
190
187
|
// return session to identify user
|
|
191
188
|
// and only info that twoFactor auth is requested
|
|
192
|
-
return new
|
|
189
|
+
return new CookieResponse('ssid', session.SessionId, this.SessionExpirationTime, true, {
|
|
193
190
|
toFactorAuth: true,
|
|
194
191
|
}, { httpOnly: true });
|
|
195
192
|
}
|
|
@@ -197,111 +194,111 @@ let LoginController = class LoginController extends http_1.BaseController {
|
|
|
197
194
|
// 2fa is not enabled, so we found user, it means it is logged
|
|
198
195
|
session.Data.set('Authorized', true);
|
|
199
196
|
await this.SessionProvider.save(session);
|
|
200
|
-
await this.Queue.emit(new
|
|
201
|
-
user.LastLoginAt =
|
|
197
|
+
await this.Queue.emit(new UserLoginSuccess(user.Uuid));
|
|
198
|
+
user.LastLoginAt = DateTime.now();
|
|
202
199
|
await user.update();
|
|
203
200
|
// BEWARE: httpOnly coockie, only accesible via http method in browser
|
|
204
201
|
// return coockie session id with additional user data
|
|
205
|
-
return new
|
|
202
|
+
return new CookieResponse('ssid', session.SessionId, this.SessionExpirationTime, true, dUser, { httpOnly: true });
|
|
206
203
|
}
|
|
207
204
|
};
|
|
208
205
|
__decorate([
|
|
209
|
-
|
|
210
|
-
__metadata("design:type",
|
|
206
|
+
Autoinject(),
|
|
207
|
+
__metadata("design:type", Configuration)
|
|
211
208
|
], LoginController.prototype, "Configuration", void 0);
|
|
212
209
|
__decorate([
|
|
213
|
-
|
|
214
|
-
__metadata("design:type",
|
|
210
|
+
AutoinjectService('rbac.auth'),
|
|
211
|
+
__metadata("design:type", AuthProvider)
|
|
215
212
|
], LoginController.prototype, "AuthProvider", void 0);
|
|
216
213
|
__decorate([
|
|
217
|
-
|
|
218
|
-
__metadata("design:type",
|
|
214
|
+
AutoinjectService('rbac.session'),
|
|
215
|
+
__metadata("design:type", SessionProvider)
|
|
219
216
|
], LoginController.prototype, "SessionProvider", void 0);
|
|
220
217
|
__decorate([
|
|
221
|
-
|
|
218
|
+
Config('rbac.session.expiration', {
|
|
222
219
|
defaultValue: 120,
|
|
223
220
|
}),
|
|
224
221
|
__metadata("design:type", Number)
|
|
225
222
|
], LoginController.prototype, "SessionExpirationTime", void 0);
|
|
226
223
|
__decorate([
|
|
227
|
-
|
|
224
|
+
Config('rbac.password_reset.ttl'),
|
|
228
225
|
__metadata("design:type", Number)
|
|
229
226
|
], LoginController.prototype, "PasswordResetTokenTTL", void 0);
|
|
230
227
|
__decorate([
|
|
231
|
-
|
|
232
|
-
__metadata("design:type",
|
|
228
|
+
AutoinjectService('rbac.twoFactorAuth'),
|
|
229
|
+
__metadata("design:type", TwoFactorAuthProvider)
|
|
233
230
|
], LoginController.prototype, "TwoFactorAuthProvider", void 0);
|
|
234
231
|
__decorate([
|
|
235
|
-
|
|
236
|
-
__metadata("design:type",
|
|
232
|
+
AutoinjectService('rbac.fingerprint.provider'),
|
|
233
|
+
__metadata("design:type", FingerprintProvider)
|
|
237
234
|
], LoginController.prototype, "FingerprintProvider", void 0);
|
|
238
235
|
__decorate([
|
|
239
|
-
|
|
240
|
-
__metadata("design:type",
|
|
236
|
+
AutoinjectService('rbac.password.validation'),
|
|
237
|
+
__metadata("design:type", PasswordValidationProvider)
|
|
241
238
|
], LoginController.prototype, "PasswordValidationService", void 0);
|
|
242
239
|
__decorate([
|
|
243
|
-
|
|
240
|
+
Autoinject(FederatedAuthProvider),
|
|
244
241
|
__metadata("design:type", Array)
|
|
245
242
|
], LoginController.prototype, "FederatedLoginStrategies", void 0);
|
|
246
243
|
__decorate([
|
|
247
|
-
|
|
248
|
-
__metadata("design:type",
|
|
244
|
+
Autoinject(),
|
|
245
|
+
__metadata("design:type", PasswordProvider)
|
|
249
246
|
], LoginController.prototype, "PasswordProvider", void 0);
|
|
250
247
|
__decorate([
|
|
251
|
-
|
|
252
|
-
__metadata("design:type",
|
|
248
|
+
Autoinject(QueueClient),
|
|
249
|
+
__metadata("design:type", QueueClient)
|
|
253
250
|
], LoginController.prototype, "Queue", void 0);
|
|
254
251
|
__decorate([
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
__param(0,
|
|
258
|
-
__param(1,
|
|
252
|
+
Post('federated-login'),
|
|
253
|
+
Policy(NotLoggedPolicy),
|
|
254
|
+
__param(0, Body()),
|
|
255
|
+
__param(1, Header('Host')),
|
|
259
256
|
__metadata("design:type", Function),
|
|
260
257
|
__metadata("design:paramtypes", [Object, String]),
|
|
261
258
|
__metadata("design:returntype", Promise)
|
|
262
259
|
], LoginController.prototype, "loginFederated", null);
|
|
263
260
|
__decorate([
|
|
264
|
-
|
|
265
|
-
|
|
261
|
+
Get(),
|
|
262
|
+
Policy(NotLoggedPolicy),
|
|
266
263
|
__metadata("design:type", Function),
|
|
267
264
|
__metadata("design:paramtypes", []),
|
|
268
265
|
__metadata("design:returntype", Promise)
|
|
269
266
|
], LoginController.prototype, "federatedLoginList", null);
|
|
270
267
|
__decorate([
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
__param(0,
|
|
268
|
+
Post(),
|
|
269
|
+
Policy(NotLoggedPolicy),
|
|
270
|
+
__param(0, Body()),
|
|
274
271
|
__metadata("design:type", Function),
|
|
275
|
-
__metadata("design:paramtypes", [
|
|
272
|
+
__metadata("design:paramtypes", [UserLoginDto]),
|
|
276
273
|
__metadata("design:returntype", Promise)
|
|
277
274
|
], LoginController.prototype, "login", null);
|
|
278
275
|
__decorate([
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
__param(0,
|
|
282
|
-
__param(1,
|
|
276
|
+
Post('new-password'),
|
|
277
|
+
Policy(NotLoggedPolicy),
|
|
278
|
+
__param(0, Query()),
|
|
279
|
+
__param(1, Body()),
|
|
283
280
|
__metadata("design:type", Function),
|
|
284
|
-
__metadata("design:paramtypes", [String,
|
|
281
|
+
__metadata("design:paramtypes", [String, RestorePasswordDto]),
|
|
285
282
|
__metadata("design:returntype", Promise)
|
|
286
283
|
], LoginController.prototype, "setNewPassword", null);
|
|
287
284
|
__decorate([
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
__param(0,
|
|
285
|
+
Post('forgot-password'),
|
|
286
|
+
Policy(NotLoggedPolicy),
|
|
287
|
+
__param(0, Body()),
|
|
291
288
|
__metadata("design:type", Function),
|
|
292
|
-
__metadata("design:paramtypes", [
|
|
289
|
+
__metadata("design:paramtypes", [UserLoginDto]),
|
|
293
290
|
__metadata("design:returntype", Promise)
|
|
294
291
|
], LoginController.prototype, "forgotPassword", null);
|
|
295
292
|
__decorate([
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
__param(0,
|
|
293
|
+
Get(),
|
|
294
|
+
Policy(LoggedPolicy),
|
|
295
|
+
__param(0, Cookie()),
|
|
299
296
|
__metadata("design:type", Function),
|
|
300
297
|
__metadata("design:paramtypes", [String]),
|
|
301
298
|
__metadata("design:returntype", Promise)
|
|
302
299
|
], LoginController.prototype, "logout", null);
|
|
303
300
|
LoginController = __decorate([
|
|
304
|
-
|
|
301
|
+
BasePath('user/auth')
|
|
305
302
|
], LoginController);
|
|
306
|
-
|
|
303
|
+
export { LoginController };
|
|
307
304
|
//# sourceMappingURL=LoginController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../src/controllers/LoginController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoginController.js","sourceRoot":"","sources":["../../src/controllers/LoginController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { TokenDto } from './../dto/token-dto';
|
|
1
|
+
import { TokenDto } from './../dto/token-dto.js';
|
|
2
2
|
import { BaseController, Ok, Unauthorized } from '@spinajs/http';
|
|
3
3
|
import { SessionProvider, User as UserModel } from '@spinajs/rbac';
|
|
4
|
-
import { TwoFactorAuthProvider } from '../interfaces';
|
|
4
|
+
import { TwoFactorAuthProvider } from '../interfaces.js';
|
|
5
5
|
import { QueueClient } from '@spinajs/queue';
|
|
6
6
|
export declare class TwoFactorAuthController extends BaseController {
|
|
7
7
|
protected Queue: QueueClient;
|
|
8
8
|
protected SessionProvider: SessionProvider;
|
|
9
9
|
protected TwoFactorAuthProvider: TwoFactorAuthProvider;
|
|
10
|
-
verifyToken(logged: UserModel, token: TokenDto, ssid: string): Promise<
|
|
10
|
+
verifyToken(logged: UserModel, token: TokenDto, ssid: string): Promise<Unauthorized | Ok>;
|
|
11
11
|
}
|
|
12
|
+
//# sourceMappingURL=TwoFactorAuthController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwoFactorAuthController.d.ts","sourceRoot":"","sources":["../../src/controllers/TwoFactorAuthController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAoB,EAAE,EAAQ,YAAY,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAMnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAEa,uBAAwB,SAAQ,cAAc;IAEzD,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;IAG7B,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAG3C,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAG1C,WAAW,CAAS,MAAM,EAAE,SAAS,EAAU,KAAK,EAAE,QAAQ,EAAY,IAAI,EAAE,MAAM;CAoBpG"}
|