@hedhog/admin 0.51.14 → 0.51.16

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.
@@ -3,8 +3,8 @@ import { ChangeDTO } from './dto/change.dto';
3
3
  import { CreateUserDTO } from './dto/create-user.dto';
4
4
  import { EmailDTO } from './dto/email.dto';
5
5
  import { ForgetDTO } from './dto/forget.dto';
6
+ import { LoginWithCodeDTO } from './dto/login-with-code.dto';
6
7
  import { LoginDTO } from './dto/login.dto';
7
- import { OtpDTO } from './dto/otp.dto';
8
8
  import { RegisterDTO } from './dto/register.dto';
9
9
  import { ResetDTO } from './dto/reset.dto';
10
10
  import { User as UserType } from './types/user.type';
@@ -32,15 +32,16 @@ export declare class AuthController {
32
32
  login({ email, password }: LoginDTO): Promise<{
33
33
  token: string;
34
34
  } | {
35
- name: string;
36
- email: string;
37
35
  token: string;
38
36
  mfa: boolean;
39
37
  }>;
40
38
  register({ email, password, name, code, multifactor_id }: RegisterDTO): Promise<{
41
39
  token: string;
42
40
  }>;
43
- otp({ token, code }: OtpDTO): Promise<{
41
+ loginCode({ token, code }: LoginWithCodeDTO): Promise<{
42
+ token: string;
43
+ }>;
44
+ loginRecoveryCode({ token, code }: LoginWithCodeDTO): Promise<{
44
45
  token: string;
45
46
  }>;
46
47
  forget({ email, }: ForgetDTO & {
@@ -58,16 +59,22 @@ export declare class AuthController {
58
59
  changeEmail({ currentEmail, password, newEmail }: EmailDTO): Promise<{
59
60
  token: string;
60
61
  }>;
61
- generate2fa({ id }: {
62
+ removeMfa({ id }: {
63
+ id: any;
64
+ }, { token }: {
65
+ token: string;
66
+ }): Promise<{
67
+ token: string;
68
+ }>;
69
+ generateMfa({ id }: {
62
70
  id: any;
63
71
  }): Promise<{
64
- qrCode: any;
65
72
  otpauthUrl: any;
73
+ qrCode: any;
66
74
  }>;
67
- verify2fa({ id }: {
75
+ verifyMfa({ id }: {
68
76
  id: any;
69
- }, { secret, token }: {
70
- secret: string;
77
+ }, { token }: {
71
78
  token: string;
72
79
  }): Promise<{
73
80
  token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBACa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAKjC,eAAe,CAAgB,IAAI,EAAE,MAAM;;;;;IAM3C,UAAU,CAAS,IAAI,EAAE,aAAa;;;IAMtC,MAAM,CAAS,EAAE,EAAE,EAAE,EAAE,QAAQ;;;;;;;;;;IAM/B,KAAK,CAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;;;;;;IAM3C,QAAQ,CACJ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,WAAW;;;IAahE,GAAG,CAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM;;;IAMnC,MAAM,CAEV,EACE,KAAK,GACN,EAAE,SAAS,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd;;;IASG,KAAK,CAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,QAAQ;;;IAUjE,cAAc,CAElB,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,SAAS;;;IAWlE,WAAW,CAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;IAKlE,WAAW,CAAS,EAAE,EAAE,EAAE;;KAAA;;;;IAK1B,SAAS,CACL,EAAE,EAAE,EAAE;;KAAA,EACN,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;;;CAI/D"}
1
+ {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBACa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAKjC,eAAe,CAAgB,IAAI,EAAE,MAAM;;;;;IAM3C,UAAU,CAAS,IAAI,EAAE,aAAa;;;IAMtC,MAAM,CAAS,EAAE,EAAE,EAAE,EAAE,QAAQ;;;;;;;;;;IAM/B,KAAK,CAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;;;;IAM3C,QAAQ,CACJ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,WAAW;;;IAahE,SAAS,CAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,gBAAgB;;;IAMnD,iBAAiB,CAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,gBAAgB;;;IAM3D,MAAM,CAEV,EACE,KAAK,GACN,EAAE,SAAS,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd;;;IASG,KAAK,CAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,QAAQ;;;IAUjE,cAAc,CAElB,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,SAAS;;;IAWlE,WAAW,CAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;IAKlE,SAAS,CAAS,EAAE,EAAE,EAAE;;KAAA,EAAU,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;IAK9D,WAAW,CAAS,EAAE,EAAE,EAAE;;KAAA;;;;IAK1B,SAAS,CAAS,EAAE,EAAE,EAAE;;KAAA,EAAU,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;CAIrE"}
@@ -19,8 +19,8 @@ const auth_service_1 = require("./auth.service");
19
19
  const change_dto_1 = require("./dto/change.dto");
20
20
  const create_user_dto_1 = require("./dto/create-user.dto");
21
21
  const email_dto_1 = require("./dto/email.dto");
22
+ const login_with_code_dto_1 = require("./dto/login-with-code.dto");
22
23
  const login_dto_1 = require("./dto/login.dto");
23
- const otp_dto_1 = require("./dto/otp.dto");
24
24
  const register_dto_1 = require("./dto/register.dto");
25
25
  const reset_dto_1 = require("./dto/reset.dto");
26
26
  let AuthController = class AuthController {
@@ -48,8 +48,11 @@ let AuthController = class AuthController {
48
48
  multifactor_id,
49
49
  });
50
50
  }
51
- async otp({ token, code }) {
52
- return this.service.otp({ token, code });
51
+ async loginCode({ token, code }) {
52
+ return this.service.loginCode({ token, code });
53
+ }
54
+ async loginRecoveryCode({ token, code }) {
55
+ return this.service.loginRecoveryCode({ token, code });
53
56
  }
54
57
  async forget({ email, }) {
55
58
  return this.service.forget({
@@ -74,11 +77,15 @@ let AuthController = class AuthController {
74
77
  async changeEmail({ currentEmail, password, newEmail }) {
75
78
  return this.service.changeEmail({ currentEmail, password, newEmail });
76
79
  }
77
- async generate2fa({ id }) {
78
- return this.service.generate2fa(id);
80
+ async removeMfa({ id }, { token }) {
81
+ return this.service.removeMfa(id, token);
82
+ }
83
+ async generateMfa({ id }) {
84
+ return this.service.generateMfa(id);
79
85
  }
80
- async verify2fa({ id }, { secret, token }) {
81
- return this.service.verify2fa(id, token);
86
+ async verifyMfa({ id }, { token }) {
87
+ console.log('mfa-verify');
88
+ return this.service.verifyMfa(id, token);
82
89
  }
83
90
  };
84
91
  exports.AuthController = AuthController;
@@ -124,12 +131,20 @@ __decorate([
124
131
  ], AuthController.prototype, "register", null);
125
132
  __decorate([
126
133
  (0, core_1.Public)(),
127
- (0, common_1.Post)('otp'),
134
+ (0, common_1.Post)('login-code'),
135
+ __param(0, (0, common_1.Body)()),
136
+ __metadata("design:type", Function),
137
+ __metadata("design:paramtypes", [login_with_code_dto_1.LoginWithCodeDTO]),
138
+ __metadata("design:returntype", Promise)
139
+ ], AuthController.prototype, "loginCode", null);
140
+ __decorate([
141
+ (0, core_1.Public)(),
142
+ (0, common_1.Post)('login-recovery-code'),
128
143
  __param(0, (0, common_1.Body)()),
129
144
  __metadata("design:type", Function),
130
- __metadata("design:paramtypes", [otp_dto_1.OtpDTO]),
145
+ __metadata("design:paramtypes", [login_with_code_dto_1.LoginWithCodeDTO]),
131
146
  __metadata("design:returntype", Promise)
132
- ], AuthController.prototype, "otp", null);
147
+ ], AuthController.prototype, "loginRecoveryCode", null);
133
148
  __decorate([
134
149
  (0, core_1.Public)(),
135
150
  (0, common_1.Post)('forget'),
@@ -162,20 +177,28 @@ __decorate([
162
177
  __metadata("design:returntype", Promise)
163
178
  ], AuthController.prototype, "changeEmail", null);
164
179
  __decorate([
165
- (0, common_1.Post)('2fa/generate'),
180
+ (0, common_1.Delete)('mfa-remove'),
181
+ __param(0, (0, core_1.User)()),
182
+ __param(1, (0, common_1.Body)()),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", [Object, Object]),
185
+ __metadata("design:returntype", Promise)
186
+ ], AuthController.prototype, "removeMfa", null);
187
+ __decorate([
188
+ (0, common_1.Post)('mfa-generate'),
166
189
  __param(0, (0, core_1.User)()),
167
190
  __metadata("design:type", Function),
168
191
  __metadata("design:paramtypes", [Object]),
169
192
  __metadata("design:returntype", Promise)
170
- ], AuthController.prototype, "generate2fa", null);
193
+ ], AuthController.prototype, "generateMfa", null);
171
194
  __decorate([
172
- (0, common_1.Post)('2fa/verify'),
195
+ (0, common_1.Post)('mfa-verify'),
173
196
  __param(0, (0, core_1.User)()),
174
197
  __param(1, (0, common_1.Body)()),
175
198
  __metadata("design:type", Function),
176
199
  __metadata("design:paramtypes", [Object, Object]),
177
200
  __metadata("design:returntype", Promise)
178
- ], AuthController.prototype, "verify2fa", null);
201
+ ], AuthController.prototype, "verifyMfa", null);
179
202
  exports.AuthController = AuthController = __decorate([
180
203
  (0, common_1.Controller)('auth'),
181
204
  __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => auth_service_1.AuthService))),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,15 @@ import { PrismaService } from '@hedhog/prisma';
3
3
  import { OnModuleInit } from '@nestjs/common';
4
4
  import { ConfigService } from '@nestjs/config';
5
5
  import { JwtService } from '@nestjs/jwt';
6
+ import { SettingService } from '../setting/setting.service';
6
7
  import { ChangeDTO } from './dto/change.dto';
7
8
  import { CreateUserDTO } from './dto/create-user.dto';
8
9
  import { EmailDTO } from './dto/email.dto';
9
10
  import { ForgetDTO } from './dto/forget.dto';
11
+ import { LoginWithCodeDTO } from './dto/login-with-code.dto';
10
12
  import { LoginDTO } from './dto/login.dto';
11
- import { OtpDTO } from './dto/otp.dto';
12
13
  import { RegisterDTO } from './dto/register.dto';
13
14
  import { ResetDTO } from './dto/reset.dto';
14
- import { SettingService } from '../setting/setting.service';
15
15
  export declare class AuthService implements OnModuleInit {
16
16
  private readonly configService;
17
17
  private readonly prisma;
@@ -38,8 +38,6 @@ export declare class AuthService implements OnModuleInit {
38
38
  loginWithEmailAndPassword(email: string, password: string): Promise<{
39
39
  token: string;
40
40
  } | {
41
- name: string;
42
- email: string;
43
41
  token: string;
44
42
  mfa: boolean;
45
43
  }>;
@@ -58,14 +56,16 @@ export declare class AuthService implements OnModuleInit {
58
56
  resetPassword({ code, newPassword, confirmNewPassword }: ResetDTO): Promise<false | {
59
57
  token: string;
60
58
  }>;
61
- otp({ token, code }: OtpDTO): Promise<{
59
+ checkCodeMfa(userId: number, code: number): Promise<any>;
60
+ loginRecoveryCode({ token, code }: LoginWithCodeDTO): Promise<{
61
+ token: string;
62
+ }>;
63
+ loginCode({ token, code }: LoginWithCodeDTO): Promise<{
62
64
  token: string;
63
65
  }>;
64
66
  login({ email, password }: LoginDTO): Promise<{
65
67
  token: string;
66
68
  } | {
67
- name: string;
68
- email: string;
69
69
  token: string;
70
70
  mfa: boolean;
71
71
  }>;
@@ -79,12 +79,16 @@ export declare class AuthService implements OnModuleInit {
79
79
  email: string;
80
80
  password: string;
81
81
  }>;
82
- generate2fa(userId: number): Promise<{
83
- qrCode: any;
82
+ generateMfa(userId: number): Promise<{
84
83
  otpauthUrl: any;
84
+ qrCode: any;
85
+ }>;
86
+ generateRecoveryCodes(count?: number): string[];
87
+ createMfaRecoveryCodes(userId: number): Promise<string[]>;
88
+ removeMfa(userId: number, token: string): Promise<{
89
+ token: string;
85
90
  }>;
86
- create2faRecoveryCodes(userId: number): Promise<void>;
87
- verify2fa(userId: number, token: string): Promise<{
91
+ verifyMfa(userId: number, token: string, verifyMultifactor?: boolean): Promise<{
88
92
  token: string;
89
93
  }>;
90
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAOL,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBACa,WAAY,YAAW,YAAY;IAI5C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAA2B;gBAGxB,aAAa,EAAE,aAAa,EAE5B,MAAM,EAAE,aAAa,EAErB,GAAG,EAAE,UAAU,EAEf,IAAI,EAAE,WAAW,EAEjB,OAAO,EAAE,cAAc;IAGpC,YAAY;IAWZ,eAAe,CAAC,IAAI,EAAE,MAAM;;;;;IAyB5B,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,WAAW;;;IA2BrE,UAAU,CAAC,EACf,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,WAAW,GACZ,EAAE,aAAa;;;IA+EV,WAAW,CAAC,KAAK,EAAE,MAAM;IAM/B,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAW5C,oBAAoB,IAAI,MAAM;IAMxB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;IAkDzD,QAAQ,CAAC,IAAI,KAAA;;;IAUb,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS;;;IA0C3B,cAAc,CAAC,EACnB,KAAK,EACL,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,EAAE,SAAS;;;IAkCN,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;IAyD1D,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,QAAQ;;;IAgDjE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM;;;IA0B3B,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ;;;;;;;;IAInC,MAAM,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAMjB,WAAW,CAAC,MAAM,EAAE,MAAM;;;;IA6C1B,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAErC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;CA0C9C"}
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -55,8 +55,8 @@ const bcrypt_1 = require("bcrypt");
55
55
  const qrcode = __importStar(require("qrcode"));
56
56
  const speakeasy = __importStar(require("speakeasy"));
57
57
  const emails_1 = require("../emails");
58
- const multifactor_type_enum_1 = require("./enums/multifactor-type.enum");
59
58
  const setting_service_1 = require("../setting/setting.service");
59
+ const multifactor_type_enum_1 = require("./enums/multifactor-type.enum");
60
60
  let AuthService = class AuthService {
61
61
  constructor(configService, prisma, jwt, mail, setting) {
62
62
  this.configService = configService;
@@ -73,7 +73,6 @@ let AuthService = class AuthService {
73
73
  'mfa-setp',
74
74
  'system-name',
75
75
  ]);
76
- console.log({ settings: this.settings });
77
76
  }
78
77
  async createUserCheck(code) {
79
78
  try {
@@ -224,35 +223,43 @@ let AuthService = class AuthService {
224
223
  if (!isPasswordValid) {
225
224
  throw new common_1.BadRequestException('Acesso negado');
226
225
  }
226
+ console.log('loginWithEmailAndPassword', { user });
227
227
  if (!user.multifactor_id) {
228
228
  return this.getToken(user);
229
229
  }
230
230
  else {
231
- if (user.multifactor_id === multifactor_type_enum_1.MultifactorType.EMAIL) {
232
- const code = this.generateRandomNumber();
233
- await this.prisma.user.update({
234
- where: {
235
- id: user.id,
236
- },
237
- data: {
238
- code: String(code),
239
- },
240
- });
241
- await this.mail.send({
242
- to: user.email,
243
- subject: 'Código de Login',
244
- body: `Seu código de login é ${code}`,
245
- });
231
+ switch (user.multifactor_id) {
232
+ case multifactor_type_enum_1.MultifactorType.EMAIL:
233
+ const code = this.generateRandomNumber();
234
+ await this.prisma.user.update({
235
+ where: {
236
+ id: user.id,
237
+ },
238
+ data: {
239
+ code: String(code),
240
+ },
241
+ });
242
+ await this.mail.send({
243
+ to: user.email,
244
+ subject: 'Código de Login',
245
+ body: `Seu código de login é ${code}`,
246
+ });
247
+ return {
248
+ token: this.jwt.sign({
249
+ id: user.id,
250
+ mfa: user.multifactor_id,
251
+ }),
252
+ mfa: true,
253
+ };
254
+ case multifactor_type_enum_1.MultifactorType.APP:
255
+ return {
256
+ token: this.jwt.sign({
257
+ id: user.id,
258
+ mfa: user.multifactor_id,
259
+ }),
260
+ mfa: true,
261
+ };
246
262
  }
247
- return {
248
- name: user.name,
249
- email: user.email,
250
- token: this.jwt.sign({
251
- id: user.id,
252
- mfa: user.multifactor_id,
253
- }),
254
- mfa: true,
255
- };
256
263
  }
257
264
  }
258
265
  async getToken(user) {
@@ -404,26 +411,108 @@ let AuthService = class AuthService {
404
411
  throw new common_1.BadRequestException(`Invalid code. ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : String(error)}`);
405
412
  }
406
413
  }
407
- async otp({ token, code }) {
408
- const data = this.jwt.decode(token);
414
+ async checkCodeMfa(userId, code) {
415
+ var _a, _b;
416
+ const window = (_a = this.settings['mfa-window']) !== null && _a !== void 0 ? _a : 0;
417
+ const step = (_b = this.settings['mfa-setp']) !== null && _b !== void 0 ? _b : 30;
409
418
  const user = await this.prisma.user.findFirst({
410
419
  where: {
411
- id: data['id'],
412
- code: String(code),
420
+ id: userId,
421
+ },
422
+ select: {
423
+ code: true,
413
424
  },
414
425
  });
415
426
  if (!user) {
416
- throw new common_1.NotFoundException('Código inválido');
427
+ throw new common_1.NotFoundException('Usuário não encontrado');
417
428
  }
418
- await this.prisma.user.update({
419
- where: {
420
- id: user.id,
421
- },
422
- data: {
423
- code: null,
424
- },
429
+ const isValid = await speakeasy.totp.verify({
430
+ secret: user.code,
431
+ encoding: 'base32',
432
+ token: String(code),
433
+ window,
434
+ step,
425
435
  });
426
- return this.getToken(user);
436
+ return isValid;
437
+ }
438
+ async loginRecoveryCode({ token, code }) {
439
+ const data = this.jwt.decode(token);
440
+ if (!(data === null || data === void 0 ? void 0 : data.mfa) || !(data === null || data === void 0 ? void 0 : data.id)) {
441
+ throw new common_1.BadRequestException('Código inválido');
442
+ }
443
+ switch (data.mfa) {
444
+ case multifactor_type_enum_1.MultifactorType.EMAIL:
445
+ //TO DO
446
+ case multifactor_type_enum_1.MultifactorType.APP:
447
+ const codes = await this.prisma.user_code_recovery.findMany({
448
+ where: {
449
+ user_id: data.id,
450
+ },
451
+ });
452
+ let isValid = false;
453
+ for (const item of codes) {
454
+ const isCodeValid = await (0, bcrypt_1.compare)(String(code), item.code);
455
+ if (isCodeValid) {
456
+ isValid = true;
457
+ await this.prisma.user_code_recovery.delete({
458
+ where: {
459
+ id: item.id,
460
+ },
461
+ });
462
+ break;
463
+ }
464
+ }
465
+ if (!isValid) {
466
+ throw new common_1.NotFoundException('Código inválido');
467
+ }
468
+ const user = await this.prisma.user.findFirst({
469
+ where: {
470
+ id: data.id,
471
+ },
472
+ });
473
+ return this.getToken(user);
474
+ }
475
+ }
476
+ async loginCode({ token, code }) {
477
+ const data = this.jwt.decode(token);
478
+ if (!(data === null || data === void 0 ? void 0 : data.mfa) || !(data === null || data === void 0 ? void 0 : data.id)) {
479
+ throw new common_1.BadRequestException('Código inválido');
480
+ }
481
+ switch (data.mfa) {
482
+ case multifactor_type_enum_1.MultifactorType.EMAIL:
483
+ const user = await this.prisma.user.findFirst({
484
+ where: {
485
+ id: data.id,
486
+ code: String(code),
487
+ },
488
+ });
489
+ if (!user) {
490
+ throw new common_1.NotFoundException('Código inválido');
491
+ }
492
+ await this.prisma.user.update({
493
+ where: {
494
+ id: user.id,
495
+ },
496
+ data: {
497
+ code: null,
498
+ },
499
+ });
500
+ return this.getToken(user);
501
+ case multifactor_type_enum_1.MultifactorType.APP:
502
+ const isValid = await this.checkCodeMfa(data.id, code);
503
+ if (!isValid) {
504
+ throw new common_1.NotFoundException('Código inválido');
505
+ }
506
+ const userApp = await this.prisma.user.findFirst({
507
+ where: {
508
+ id: data.id,
509
+ },
510
+ });
511
+ if (!userApp) {
512
+ throw new common_1.NotFoundException('Código inválido');
513
+ }
514
+ return this.getToken(userApp);
515
+ }
427
516
  }
428
517
  async login({ email, password }) {
429
518
  return this.loginWithEmailAndPassword(email, password);
@@ -433,7 +522,7 @@ let AuthService = class AuthService {
433
522
  where: { id },
434
523
  });
435
524
  }
436
- async generate2fa(userId) {
525
+ async generateMfa(userId) {
437
526
  var _a;
438
527
  const user = await this.prisma.user.findFirst({
439
528
  where: {
@@ -441,8 +530,12 @@ let AuthService = class AuthService {
441
530
  },
442
531
  select: {
443
532
  email: true,
533
+ multifactor_id: true,
444
534
  },
445
535
  });
536
+ if (user.multifactor_id) {
537
+ throw new common_1.ConflictException('Usuário já possui MFA habilitado');
538
+ }
446
539
  const issuer = (_a = this.settings['mfa-issuer']) !== null && _a !== void 0 ? _a : 'Hedhog';
447
540
  const appName = `${issuer} (${user.email})`;
448
541
  const secret = speakeasy.generateSecret({
@@ -465,14 +558,61 @@ let AuthService = class AuthService {
465
558
  id: userId,
466
559
  },
467
560
  data: {
468
- multifactor_id: multifactor_type_enum_1.MultifactorType.APP,
469
561
  code: secret.base32,
470
562
  },
471
563
  });
472
- return { qrCode, otpauthUrl: secret.otpauth_url };
564
+ return { otpauthUrl: secret.otpauth_url, qrCode };
565
+ }
566
+ generateRecoveryCodes(count = 10) {
567
+ const codes = Array.from({ length: count }, () => {
568
+ const array = new Uint8Array(4);
569
+ globalThis.crypto.getRandomValues(array);
570
+ return Array.from(array)
571
+ .map((b) => b.toString(16).padStart(2, '0'))
572
+ .join('');
573
+ });
574
+ return codes;
575
+ }
576
+ async createMfaRecoveryCodes(userId) {
577
+ const codes = this.generateRecoveryCodes();
578
+ await this.prisma.user_code_recovery.deleteMany({
579
+ where: {
580
+ user_id: userId,
581
+ },
582
+ });
583
+ const salt = await (0, bcrypt_1.genSalt)();
584
+ const data = [];
585
+ for (const code of codes) {
586
+ const hashCode = await (0, bcrypt_1.hash)(code, salt);
587
+ data.push({
588
+ user_id: userId,
589
+ code: hashCode,
590
+ });
591
+ }
592
+ await this.prisma.user_code_recovery.createMany({
593
+ data,
594
+ });
595
+ return codes;
473
596
  }
474
- async create2faRecoveryCodes(userId) { }
475
- async verify2fa(userId, token) {
597
+ async removeMfa(userId, token) {
598
+ try {
599
+ await this.verifyMfa(userId, token, false);
600
+ const user = await this.prisma.user.update({
601
+ where: {
602
+ id: userId,
603
+ },
604
+ data: {
605
+ multifactor_id: null,
606
+ code: null,
607
+ },
608
+ });
609
+ return this.getToken(user);
610
+ }
611
+ catch (error) {
612
+ throw new common_1.BadRequestException(`Invalid code: ${error === null || error === void 0 ? void 0 : error.message}`);
613
+ }
614
+ }
615
+ async verifyMfa(userId, token, verifyMultifactor = true) {
476
616
  var _a, _b;
477
617
  const window = (_a = this.settings['mfa-window']) !== null && _a !== void 0 ? _a : 0;
478
618
  const step = (_b = this.settings['mfa-setp']) !== null && _b !== void 0 ? _b : 30;
@@ -481,7 +621,9 @@ let AuthService = class AuthService {
481
621
  id: userId,
482
622
  },
483
623
  });
484
- console.log('verify2fa', { userId, token, user });
624
+ if (verifyMultifactor && user.multifactor_id) {
625
+ throw new common_1.ConflictException('Usuário já possui MFA habilitado');
626
+ }
485
627
  if (!user) {
486
628
  throw new common_1.NotFoundException('Usuário não encontrado');
487
629
  }
@@ -492,7 +634,6 @@ let AuthService = class AuthService {
492
634
  window,
493
635
  step,
494
636
  });
495
- console.log('isValid', isValid);
496
637
  if (!isValid) {
497
638
  throw new common_1.BadRequestException('Código inválido');
498
639
  }
@@ -502,10 +643,10 @@ let AuthService = class AuthService {
502
643
  },
503
644
  data: {
504
645
  multifactor_id: multifactor_type_enum_1.MultifactorType.APP,
505
- code: user.code,
506
646
  },
507
647
  });
508
- return this.getToken(user);
648
+ const codes = await this.createMfaRecoveryCodes(userId);
649
+ return Object.assign(Object.assign({}, this.getToken(user)), { codes });
509
650
  }
510
651
  };
511
652
  exports.AuthService = AuthService;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class LoginWithCodeDTO {
2
+ code: number;
3
+ token: string;
4
+ }
5
+ //# sourceMappingURL=login-with-code.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-with-code.dto.d.ts","sourceRoot":"","sources":["../../../src/auth/dto/login-with-code.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAgB;IAI3B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -9,19 +9,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OtpDTO = void 0;
12
+ exports.LoginWithCodeDTO = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
- class OtpDTO {
14
+ class LoginWithCodeDTO {
15
15
  }
16
- exports.OtpDTO = OtpDTO;
16
+ exports.LoginWithCodeDTO = LoginWithCodeDTO;
17
17
  __decorate([
18
18
  (0, class_validator_1.Min)(0, { message: 'O código deve ser pelo menos 0.' }),
19
19
  (0, class_validator_1.Max)(999999, { message: 'O código deve ser no máximo 999999.' }),
20
20
  (0, class_validator_1.IsInt)({ message: 'O código deve ser um número inteiro.' }),
21
21
  __metadata("design:type", Number)
22
- ], OtpDTO.prototype, "code", void 0);
22
+ ], LoginWithCodeDTO.prototype, "code", void 0);
23
23
  __decorate([
24
24
  (0, class_validator_1.IsJWT)({ message: 'Token inválido' }),
25
25
  __metadata("design:type", String)
26
- ], OtpDTO.prototype, "token", void 0);
27
- //# sourceMappingURL=otp.dto.js.map
26
+ ], LoginWithCodeDTO.prototype, "token", void 0);
27
+ //# sourceMappingURL=login-with-code.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-with-code.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/login-with-code.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyD;AAEzD,MAAa,gBAAgB;CAQ5B;AARD,4CAQC;AAJC;IAHC,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACtD,IAAA,qBAAG,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IAC/D,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;;8CAC9C;AAGb;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;;+CACvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hedhog/admin",
3
- "version": "0.51.14",
3
+ "version": "0.51.16",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -7,14 +7,15 @@ import {
7
7
  Inject,
8
8
  Post,
9
9
  Query,
10
+ Delete,
10
11
  } from '@nestjs/common';
11
12
  import { AuthService } from './auth.service';
12
13
  import { ChangeDTO } from './dto/change.dto';
13
14
  import { CreateUserDTO } from './dto/create-user.dto';
14
15
  import { EmailDTO } from './dto/email.dto';
15
16
  import { ForgetDTO } from './dto/forget.dto';
17
+ import { LoginWithCodeDTO } from './dto/login-with-code.dto';
16
18
  import { LoginDTO } from './dto/login.dto';
17
- import { OtpDTO } from './dto/otp.dto';
18
19
  import { RegisterDTO } from './dto/register.dto';
19
20
  import { ResetDTO } from './dto/reset.dto';
20
21
  import { User as UserType } from './types/user.type';
@@ -65,9 +66,15 @@ export class AuthController {
65
66
  }
66
67
 
67
68
  @Public()
68
- @Post('otp')
69
- async otp(@Body() { token, code }: OtpDTO) {
70
- return this.service.otp({ token, code });
69
+ @Post('login-code')
70
+ async loginCode(@Body() { token, code }: LoginWithCodeDTO) {
71
+ return this.service.loginCode({ token, code });
72
+ }
73
+
74
+ @Public()
75
+ @Post('login-recovery-code')
76
+ async loginRecoveryCode(@Body() { token, code }: LoginWithCodeDTO) {
77
+ return this.service.loginRecoveryCode({ token, code });
71
78
  }
72
79
 
73
80
  @Public()
@@ -115,16 +122,19 @@ export class AuthController {
115
122
  return this.service.changeEmail({ currentEmail, password, newEmail });
116
123
  }
117
124
 
118
- @Post('2fa/generate')
119
- async generate2fa(@User() { id }) {
120
- return this.service.generate2fa(id);
125
+ @Delete('mfa-remove')
126
+ async removeMfa(@User() { id }, @Body() { token }: { token: string }) {
127
+ return this.service.removeMfa(id, token);
121
128
  }
122
129
 
123
- @Post('2fa/verify')
124
- async verify2fa(
125
- @User() { id },
126
- @Body() { secret, token }: { secret: string; token: string },
127
- ) {
128
- return this.service.verify2fa(id, token);
130
+ @Post('mfa-generate')
131
+ async generateMfa(@User() { id }) {
132
+ return this.service.generateMfa(id);
133
+ }
134
+
135
+ @Post('mfa-verify')
136
+ async verifyMfa(@User() { id }, @Body() { token }: { token: string }) {
137
+ console.log('mfa-verify');
138
+ return this.service.verifyMfa(id, token);
129
139
  }
130
140
  }
@@ -21,16 +21,16 @@ import {
21
21
  getForgetPasswordEmail,
22
22
  getResetPasswordEmail,
23
23
  } from '../emails';
24
+ import { SettingService } from '../setting/setting.service';
24
25
  import { ChangeDTO } from './dto/change.dto';
25
26
  import { CreateUserDTO } from './dto/create-user.dto';
26
27
  import { EmailDTO } from './dto/email.dto';
27
28
  import { ForgetDTO } from './dto/forget.dto';
29
+ import { LoginWithCodeDTO } from './dto/login-with-code.dto';
28
30
  import { LoginDTO } from './dto/login.dto';
29
- import { OtpDTO } from './dto/otp.dto';
30
31
  import { RegisterDTO } from './dto/register.dto';
31
32
  import { ResetDTO } from './dto/reset.dto';
32
33
  import { MultifactorType } from './enums/multifactor-type.enum';
33
- import { SettingService } from '../setting/setting.service';
34
34
 
35
35
  @Injectable()
36
36
  export class AuthService implements OnModuleInit {
@@ -55,8 +55,6 @@ export class AuthService implements OnModuleInit {
55
55
  'mfa-setp',
56
56
  'system-name',
57
57
  ]);
58
-
59
- console.log({ settings: this.settings });
60
58
  }
61
59
 
62
60
  async createUserCheck(code: string) {
@@ -239,37 +237,46 @@ export class AuthService implements OnModuleInit {
239
237
  throw new BadRequestException('Acesso negado');
240
238
  }
241
239
 
240
+ console.log('loginWithEmailAndPassword', { user });
241
+
242
242
  if (!user.multifactor_id) {
243
243
  return this.getToken(user);
244
244
  } else {
245
- if (user.multifactor_id === MultifactorType.EMAIL) {
246
- const code = this.generateRandomNumber();
247
-
248
- await this.prisma.user.update({
249
- where: {
250
- id: user.id,
251
- },
252
- data: {
253
- code: String(code),
254
- },
255
- });
256
-
257
- await this.mail.send({
258
- to: user.email,
259
- subject: 'Código de Login',
260
- body: `Seu código de login é ${code}`,
261
- });
245
+ switch (user.multifactor_id) {
246
+ case MultifactorType.EMAIL:
247
+ const code = this.generateRandomNumber();
248
+
249
+ await this.prisma.user.update({
250
+ where: {
251
+ id: user.id,
252
+ },
253
+ data: {
254
+ code: String(code),
255
+ },
256
+ });
257
+
258
+ await this.mail.send({
259
+ to: user.email,
260
+ subject: 'Código de Login',
261
+ body: `Seu código de login é ${code}`,
262
+ });
263
+
264
+ return {
265
+ token: this.jwt.sign({
266
+ id: user.id,
267
+ mfa: user.multifactor_id,
268
+ }),
269
+ mfa: true,
270
+ };
271
+ case MultifactorType.APP:
272
+ return {
273
+ token: this.jwt.sign({
274
+ id: user.id,
275
+ mfa: user.multifactor_id,
276
+ }),
277
+ mfa: true,
278
+ };
262
279
  }
263
-
264
- return {
265
- name: user.name,
266
- email: user.email,
267
- token: this.jwt.sign({
268
- id: user.id,
269
- mfa: user.multifactor_id,
270
- }),
271
- mfa: true,
272
- };
273
280
  }
274
281
  }
275
282
 
@@ -469,30 +476,130 @@ export class AuthService implements OnModuleInit {
469
476
  }
470
477
  }
471
478
 
472
- async otp({ token, code }: OtpDTO) {
473
- const data = this.jwt.decode(token);
479
+ async checkCodeMfa(userId: number, code: number) {
480
+ const window = this.settings['mfa-window'] ?? 0;
481
+ const step = this.settings['mfa-setp'] ?? 30;
474
482
 
475
483
  const user = await this.prisma.user.findFirst({
476
484
  where: {
477
- id: data['id'],
478
- code: String(code),
485
+ id: userId,
486
+ },
487
+ select: {
488
+ code: true,
479
489
  },
480
490
  });
481
491
 
482
492
  if (!user) {
483
- throw new NotFoundException('Código inválido');
493
+ throw new NotFoundException('Usuário não encontrado');
484
494
  }
485
495
 
486
- await this.prisma.user.update({
487
- where: {
488
- id: user.id,
489
- },
490
- data: {
491
- code: null,
492
- },
496
+ const isValid = await speakeasy.totp.verify({
497
+ secret: user.code,
498
+ encoding: 'base32',
499
+ token: String(code),
500
+ window,
501
+ step,
493
502
  });
494
503
 
495
- return this.getToken(user);
504
+ return isValid;
505
+ }
506
+
507
+ async loginRecoveryCode({ token, code }: LoginWithCodeDTO) {
508
+ const data = this.jwt.decode(token);
509
+
510
+ if (!data?.mfa || !data?.id) {
511
+ throw new BadRequestException('Código inválido');
512
+ }
513
+
514
+ switch (data.mfa) {
515
+ case MultifactorType.EMAIL:
516
+ //TO DO
517
+ case MultifactorType.APP:
518
+ const codes = await this.prisma.user_code_recovery.findMany({
519
+ where: {
520
+ user_id: data.id,
521
+ },
522
+ });
523
+
524
+ let isValid = false;
525
+
526
+ for (const item of codes) {
527
+ const isCodeValid = await compare(String(code), item.code);
528
+
529
+ if (isCodeValid) {
530
+ isValid = true;
531
+ await this.prisma.user_code_recovery.delete({
532
+ where: {
533
+ id: item.id,
534
+ },
535
+ });
536
+ break;
537
+ }
538
+ }
539
+
540
+ if (!isValid) {
541
+ throw new NotFoundException('Código inválido');
542
+ }
543
+
544
+ const user = await this.prisma.user.findFirst({
545
+ where: {
546
+ id: data.id,
547
+ },
548
+ });
549
+
550
+ return this.getToken(user);
551
+ }
552
+ }
553
+
554
+ async loginCode({ token, code }: LoginWithCodeDTO) {
555
+ const data = this.jwt.decode(token);
556
+
557
+ if (!data?.mfa || !data?.id) {
558
+ throw new BadRequestException('Código inválido');
559
+ }
560
+
561
+ switch (data.mfa) {
562
+ case MultifactorType.EMAIL:
563
+ const user = await this.prisma.user.findFirst({
564
+ where: {
565
+ id: data.id,
566
+ code: String(code),
567
+ },
568
+ });
569
+
570
+ if (!user) {
571
+ throw new NotFoundException('Código inválido');
572
+ }
573
+
574
+ await this.prisma.user.update({
575
+ where: {
576
+ id: user.id,
577
+ },
578
+ data: {
579
+ code: null,
580
+ },
581
+ });
582
+
583
+ return this.getToken(user);
584
+ case MultifactorType.APP:
585
+ const isValid = await this.checkCodeMfa(data.id, code);
586
+
587
+ if (!isValid) {
588
+ throw new NotFoundException('Código inválido');
589
+ }
590
+
591
+ const userApp = await this.prisma.user.findFirst({
592
+ where: {
593
+ id: data.id,
594
+ },
595
+ });
596
+
597
+ if (!userApp) {
598
+ throw new NotFoundException('Código inválido');
599
+ }
600
+
601
+ return this.getToken(userApp);
602
+ }
496
603
  }
497
604
 
498
605
  async login({ email, password }: LoginDTO) {
@@ -505,16 +612,21 @@ export class AuthService implements OnModuleInit {
505
612
  });
506
613
  }
507
614
 
508
- async generate2fa(userId: number) {
615
+ async generateMfa(userId: number) {
509
616
  const user = await this.prisma.user.findFirst({
510
617
  where: {
511
618
  id: userId,
512
619
  },
513
620
  select: {
514
621
  email: true,
622
+ multifactor_id: true,
515
623
  },
516
624
  });
517
625
 
626
+ if (user.multifactor_id) {
627
+ throw new ConflictException('Usuário já possui MFA habilitado');
628
+ }
629
+
518
630
  const issuer = this.settings['mfa-issuer'] ?? 'Hedhog';
519
631
 
520
632
  const appName = `${issuer} (${user.email})`;
@@ -542,17 +654,74 @@ export class AuthService implements OnModuleInit {
542
654
  id: userId,
543
655
  },
544
656
  data: {
545
- multifactor_id: MultifactorType.APP,
546
657
  code: secret.base32,
547
658
  },
548
659
  });
549
660
 
550
- return { qrCode, otpauthUrl: secret.otpauth_url };
661
+ return { otpauthUrl: secret.otpauth_url, qrCode };
551
662
  }
552
663
 
553
- async create2faRecoveryCodes(userId: number) {}
664
+ generateRecoveryCodes(count = 10): string[] {
665
+ const codes = Array.from({ length: count }, () => {
666
+ const array = new Uint8Array(4);
667
+ globalThis.crypto.getRandomValues(array);
668
+ return Array.from(array)
669
+ .map((b) => b.toString(16).padStart(2, '0'))
670
+ .join('');
671
+ });
672
+ return codes;
673
+ }
554
674
 
555
- async verify2fa(userId: number, token: string) {
675
+ async createMfaRecoveryCodes(userId: number) {
676
+ const codes = this.generateRecoveryCodes();
677
+
678
+ await this.prisma.user_code_recovery.deleteMany({
679
+ where: {
680
+ user_id: userId,
681
+ },
682
+ });
683
+
684
+ const salt = await genSalt();
685
+
686
+ const data = [];
687
+
688
+ for (const code of codes) {
689
+ const hashCode = await hash(code, salt);
690
+
691
+ data.push({
692
+ user_id: userId,
693
+ code: hashCode,
694
+ });
695
+ }
696
+
697
+ await this.prisma.user_code_recovery.createMany({
698
+ data,
699
+ });
700
+
701
+ return codes;
702
+ }
703
+
704
+ async removeMfa(userId: number, token: string) {
705
+ try {
706
+ await this.verifyMfa(userId, token, false);
707
+
708
+ const user = await this.prisma.user.update({
709
+ where: {
710
+ id: userId,
711
+ },
712
+ data: {
713
+ multifactor_id: null,
714
+ code: null,
715
+ },
716
+ });
717
+
718
+ return this.getToken(user);
719
+ } catch (error: any) {
720
+ throw new BadRequestException(`Invalid code: ${error?.message}`);
721
+ }
722
+ }
723
+
724
+ async verifyMfa(userId: number, token: string, verifyMultifactor = true) {
556
725
  const window = this.settings['mfa-window'] ?? 0;
557
726
  const step = this.settings['mfa-setp'] ?? 30;
558
727
 
@@ -562,7 +731,9 @@ export class AuthService implements OnModuleInit {
562
731
  },
563
732
  });
564
733
 
565
- console.log('verify2fa', { userId, token, user });
734
+ if (verifyMultifactor && user.multifactor_id) {
735
+ throw new ConflictException('Usuário já possui MFA habilitado');
736
+ }
566
737
 
567
738
  if (!user) {
568
739
  throw new NotFoundException('Usuário não encontrado');
@@ -576,8 +747,6 @@ export class AuthService implements OnModuleInit {
576
747
  step,
577
748
  });
578
749
 
579
- console.log('isValid', isValid);
580
-
581
750
  if (!isValid) {
582
751
  throw new BadRequestException('Código inválido');
583
752
  }
@@ -588,10 +757,11 @@ export class AuthService implements OnModuleInit {
588
757
  },
589
758
  data: {
590
759
  multifactor_id: MultifactorType.APP,
591
- code: user.code,
592
760
  },
593
761
  });
594
762
 
595
- return this.getToken(user);
763
+ const codes = await this.createMfaRecoveryCodes(userId);
764
+
765
+ return { ...this.getToken(user), codes };
596
766
  }
597
767
  }
@@ -1,6 +1,6 @@
1
1
  import { IsInt, IsJWT, Max, Min } from 'class-validator';
2
2
 
3
- export class OtpDTO {
3
+ export class LoginWithCodeDTO {
4
4
  @Min(0, { message: 'O código deve ser pelo menos 0.' })
5
5
  @Max(999999, { message: 'O código deve ser no máximo 999999.' })
6
6
  @IsInt({ message: 'O código deve ser um número inteiro.' })
@@ -1,5 +0,0 @@
1
- export declare class OtpDTO {
2
- code: number;
3
- token: string;
4
- }
5
- //# sourceMappingURL=otp.dto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otp.dto.d.ts","sourceRoot":"","sources":["../../../src/auth/dto/otp.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IAIjB,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"otp.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/otp.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyD;AAEzD,MAAa,MAAM;CAQlB;AARD,wBAQC;AAJC;IAHC,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACtD,IAAA,qBAAG,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IAC/D,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;;oCAC9C;AAGb;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;;qCACvB"}