@vynelix/nestjs-multi-auth 0.0.2
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 +760 -0
- package/bin/cli.js +152 -0
- package/dist/auth/auth-type.enum.d.ts +22 -0
- package/dist/auth/auth-type.enum.js +32 -0
- package/dist/auth/auth-type.enum.js.map +1 -0
- package/dist/auth/auth.controller.d.ts +70 -0
- package/dist/auth/auth.controller.js +434 -0
- package/dist/auth/auth.controller.js.map +1 -0
- package/dist/auth/auth.module.d.ts +9 -0
- package/dist/auth/auth.module.js +193 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/auth.service.d.ts +180 -0
- package/dist/auth/auth.service.js +695 -0
- package/dist/auth/auth.service.js.map +1 -0
- package/dist/auth/core/auth-mapper.d.ts +6 -0
- package/dist/auth/core/auth-mapper.js +17 -0
- package/dist/auth/core/auth-mapper.js.map +1 -0
- package/dist/auth/core/jwt.strategy.d.ts +13 -0
- package/dist/auth/core/jwt.strategy.js +59 -0
- package/dist/auth/core/jwt.strategy.js.map +1 -0
- package/dist/auth/core/registration.d.ts +3 -0
- package/dist/auth/core/registration.js +60 -0
- package/dist/auth/core/registration.js.map +1 -0
- package/dist/auth/current-user-interface.d.ts +4 -0
- package/dist/auth/current-user-interface.js +4 -0
- package/dist/auth/current-user-interface.js.map +1 -0
- package/dist/auth/current-user.decorator.d.ts +2 -0
- package/dist/auth/current-user.decorator.js +16 -0
- package/dist/auth/current-user.decorator.js.map +1 -0
- package/dist/auth/decorator/current-user.decorator.d.ts +2 -0
- package/dist/auth/decorator/current-user.decorator.js +13 -0
- package/dist/auth/decorator/current-user.decorator.js.map +1 -0
- package/dist/auth/decorator/email-or-phone.decorator.d.ts +2 -0
- package/dist/auth/decorator/email-or-phone.decorator.js +26 -0
- package/dist/auth/decorator/email-or-phone.decorator.js.map +1 -0
- package/dist/auth/decorator/optional.decorator.d.ts +2 -0
- package/dist/auth/decorator/optional.decorator.js +9 -0
- package/dist/auth/decorator/optional.decorator.js.map +1 -0
- package/dist/auth/decorator/public.decorator.d.ts +2 -0
- package/dist/auth/decorator/public.decorator.js +9 -0
- package/dist/auth/decorator/public.decorator.js.map +1 -0
- package/dist/auth/dto/auth-response.dto.d.ts +17 -0
- package/dist/auth/dto/auth-response.dto.js +83 -0
- package/dist/auth/dto/auth-response.dto.js.map +1 -0
- package/dist/auth/dto/identifier-response.dto.d.ts +8 -0
- package/dist/auth/dto/identifier-response.dto.js +46 -0
- package/dist/auth/dto/identifier-response.dto.js.map +1 -0
- package/dist/auth/dto/login.dto.d.ts +11 -0
- package/dist/auth/dto/login.dto.js +68 -0
- package/dist/auth/dto/login.dto.js.map +1 -0
- package/dist/auth/dto/mfa.dto.d.ts +8 -0
- package/dist/auth/dto/mfa.dto.js +51 -0
- package/dist/auth/dto/mfa.dto.js.map +1 -0
- package/dist/auth/dto/oauth-provider-response.dto.d.ts +5 -0
- package/dist/auth/dto/oauth-provider-response.dto.js +30 -0
- package/dist/auth/dto/oauth-provider-response.dto.js.map +1 -0
- package/dist/auth/dto/refresh-token.dto.d.ts +3 -0
- package/dist/auth/dto/refresh-token.dto.js +28 -0
- package/dist/auth/dto/refresh-token.dto.js.map +1 -0
- package/dist/auth/dto/requests/forgot-password.dto.d.ts +5 -0
- package/dist/auth/dto/requests/forgot-password.dto.js +36 -0
- package/dist/auth/dto/requests/forgot-password.dto.js.map +1 -0
- package/dist/auth/dto/requests/login.dto.d.ts +11 -0
- package/dist/auth/dto/requests/login.dto.js +68 -0
- package/dist/auth/dto/requests/login.dto.js.map +1 -0
- package/dist/auth/dto/requests/magic-link.dto.d.ts +6 -0
- package/dist/auth/dto/requests/magic-link.dto.js +33 -0
- package/dist/auth/dto/requests/magic-link.dto.js.map +1 -0
- package/dist/auth/dto/requests/mfa.dto.d.ts +8 -0
- package/dist/auth/dto/requests/mfa.dto.js +51 -0
- package/dist/auth/dto/requests/mfa.dto.js.map +1 -0
- package/dist/auth/dto/requests/refresh-token.dto.d.ts +3 -0
- package/dist/auth/dto/requests/refresh-token.dto.js +29 -0
- package/dist/auth/dto/requests/refresh-token.dto.js.map +1 -0
- package/dist/auth/dto/requests/reset-password.dto.d.ts +5 -0
- package/dist/auth/dto/requests/reset-password.dto.js +36 -0
- package/dist/auth/dto/requests/reset-password.dto.js.map +1 -0
- package/dist/auth/dto/requests/secure-account.dto.d.ts +3 -0
- package/dist/auth/dto/requests/secure-account.dto.js +24 -0
- package/dist/auth/dto/requests/secure-account.dto.js.map +1 -0
- package/dist/auth/dto/requests/signup.dto.d.ts +13 -0
- package/dist/auth/dto/requests/signup.dto.js +70 -0
- package/dist/auth/dto/requests/signup.dto.js.map +1 -0
- package/dist/auth/dto/requests/update-password.dto.d.ts +4 -0
- package/dist/auth/dto/requests/update-password.dto.js +30 -0
- package/dist/auth/dto/requests/update-password.dto.js.map +1 -0
- package/dist/auth/dto/requests/verify.dto.d.ts +7 -0
- package/dist/auth/dto/requests/verify.dto.js +48 -0
- package/dist/auth/dto/requests/verify.dto.js.map +1 -0
- package/dist/auth/dto/responses/auth-response.dto.d.ts +17 -0
- package/dist/auth/dto/responses/auth-response.dto.js +83 -0
- package/dist/auth/dto/responses/auth-response.dto.js.map +1 -0
- package/dist/auth/dto/responses/identifier-response.dto.d.ts +10 -0
- package/dist/auth/dto/responses/identifier-response.dto.js +56 -0
- package/dist/auth/dto/responses/identifier-response.dto.js.map +1 -0
- package/dist/auth/dto/responses/oauth-provider-response.dto.d.ts +10 -0
- package/dist/auth/dto/responses/oauth-provider-response.dto.js +55 -0
- package/dist/auth/dto/responses/oauth-provider-response.dto.js.map +1 -0
- package/dist/auth/dto/signup.dto.d.ts +13 -0
- package/dist/auth/dto/signup.dto.js +70 -0
- package/dist/auth/dto/signup.dto.js.map +1 -0
- package/dist/auth/dto/verify.dto.d.ts +7 -0
- package/dist/auth/dto/verify.dto.js +48 -0
- package/dist/auth/dto/verify.dto.js.map +1 -0
- package/dist/auth/entities/auth-identify.entity.d.ts +33 -0
- package/dist/auth/entities/auth-identify.entity.js +73 -0
- package/dist/auth/entities/auth-identify.entity.js.map +1 -0
- package/dist/auth/entities/auth.entity.d.ts +45 -0
- package/dist/auth/entities/auth.entity.js +129 -0
- package/dist/auth/entities/auth.entity.js.map +1 -0
- package/dist/auth/entities/base.entity.d.ts +6 -0
- package/dist/auth/entities/base.entity.js +41 -0
- package/dist/auth/entities/base.entity.js.map +1 -0
- package/dist/auth/entities/mfa-method.entity.d.ts +23 -0
- package/dist/auth/entities/mfa-method.entity.js +69 -0
- package/dist/auth/entities/mfa-method.entity.js.map +1 -0
- package/dist/auth/entities/oauth-provider.entity.d.ts +38 -0
- package/dist/auth/entities/oauth-provider.entity.js +88 -0
- package/dist/auth/entities/oauth-provider.entity.js.map +1 -0
- package/dist/auth/entities/otp-token.entity.d.ts +22 -0
- package/dist/auth/entities/otp-token.entity.js +61 -0
- package/dist/auth/entities/otp-token.entity.js.map +1 -0
- package/dist/auth/entities/session.entity.d.ts +19 -0
- package/dist/auth/entities/session.entity.js +65 -0
- package/dist/auth/entities/session.entity.js.map +1 -0
- package/dist/auth/enums/auth-type.enum.d.ts +23 -0
- package/dist/auth/enums/auth-type.enum.js +34 -0
- package/dist/auth/enums/auth-type.enum.js.map +1 -0
- package/dist/auth/guards/jwt-auth.guard.d.ts +10 -0
- package/dist/auth/guards/jwt-auth.guard.js +68 -0
- package/dist/auth/guards/jwt-auth.guard.js.map +1 -0
- package/dist/auth/guards/optional-auth.guard.d.ts +8 -0
- package/dist/auth/guards/optional-auth.guard.js +45 -0
- package/dist/auth/guards/optional-auth.guard.js.map +1 -0
- package/dist/auth/guards/ws-jwt-auth.guard.d.ts +0 -0
- package/dist/auth/guards/ws-jwt-auth.guard.js +31 -0
- package/dist/auth/guards/ws-jwt-auth.guard.js.map +1 -0
- package/dist/auth/interfaces/auth-module-async-options.interface.d.ts +7 -0
- package/dist/auth/interfaces/auth-module-async-options.interface.js +3 -0
- package/dist/auth/interfaces/auth-module-async-options.interface.js.map +1 -0
- package/dist/auth/interfaces/auth-module-options.interface.d.ts +132 -0
- package/dist/auth/interfaces/auth-module-options.interface.js +5 -0
- package/dist/auth/interfaces/auth-module-options.interface.js.map +1 -0
- package/dist/auth/interfaces/auth-notification-provider.interface.d.ts +29 -0
- package/dist/auth/interfaces/auth-notification-provider.interface.js +5 -0
- package/dist/auth/interfaces/auth-notification-provider.interface.js.map +1 -0
- package/dist/auth/interfaces/auth-user-service.interface.d.ts +13 -0
- package/dist/auth/interfaces/auth-user-service.interface.js +7 -0
- package/dist/auth/interfaces/auth-user-service.interface.js.map +1 -0
- package/dist/auth/interfaces/current-user-interface.d.ts +4 -0
- package/dist/auth/interfaces/current-user-interface.js +4 -0
- package/dist/auth/interfaces/current-user-interface.js.map +1 -0
- package/dist/auth/interfaces/current-user.decorator.d.ts +2 -0
- package/dist/auth/interfaces/current-user.decorator.js +16 -0
- package/dist/auth/interfaces/current-user.decorator.js.map +1 -0
- package/dist/auth/interfaces/jwt-payload-interface.d.ts +4 -0
- package/dist/auth/interfaces/jwt-payload-interface.js +3 -0
- package/dist/auth/interfaces/jwt-payload-interface.js.map +1 -0
- package/dist/auth/interfaces/oauth-strategy.interface.d.ts +14 -0
- package/dist/auth/interfaces/oauth-strategy.interface.js +3 -0
- package/dist/auth/interfaces/oauth-strategy.interface.js.map +1 -0
- package/dist/auth/jwt-payload-interface.d.ts +4 -0
- package/dist/auth/jwt-payload-interface.js +3 -0
- package/dist/auth/jwt-payload-interface.js.map +1 -0
- package/dist/auth/jwt.strategy.d.ts +13 -0
- package/dist/auth/jwt.strategy.js +60 -0
- package/dist/auth/jwt.strategy.js.map +1 -0
- package/dist/auth/strategies/company.strategy.d.ts +0 -0
- package/dist/auth/strategies/company.strategy.js +1 -0
- package/dist/auth/strategies/company.strategy.js.map +1 -0
- package/dist/auth/strategies/google.strategy.d.ts +7 -0
- package/dist/auth/strategies/google.strategy.js +23 -0
- package/dist/auth/strategies/google.strategy.js.map +1 -0
- package/dist/auth/strategies/local-auth.strategy.d.ts +24 -0
- package/dist/auth/strategies/local-auth.strategy.js +244 -0
- package/dist/auth/strategies/local-auth.strategy.js.map +1 -0
- package/dist/auth/strategies/oauth/apple.strategy.d.ts +27 -0
- package/dist/auth/strategies/oauth/apple.strategy.js +176 -0
- package/dist/auth/strategies/oauth/apple.strategy.js.map +1 -0
- package/dist/auth/strategies/oauth/facebook.strategy.d.ts +24 -0
- package/dist/auth/strategies/oauth/facebook.strategy.js +150 -0
- package/dist/auth/strategies/oauth/facebook.strategy.js.map +1 -0
- package/dist/auth/strategies/oauth/google.strategy.d.ts +25 -0
- package/dist/auth/strategies/oauth/google.strategy.js +225 -0
- package/dist/auth/strategies/oauth/google.strategy.js.map +1 -0
- package/dist/auth/strategies/oauth/oauth-strategy.interface.d.ts +14 -0
- package/dist/auth/strategies/oauth/oauth-strategy.interface.js +3 -0
- package/dist/auth/strategies/oauth/oauth-strategy.interface.js.map +1 -0
- package/dist/auth/strategies/oauth/oauth.strategy.d.ts +25 -0
- package/dist/auth/strategies/oauth/oauth.strategy.js +70 -0
- package/dist/auth/strategies/oauth/oauth.strategy.js.map +1 -0
- package/dist/auth/strategies/otp.strategy.d.ts +7 -0
- package/dist/auth/strategies/otp.strategy.js +23 -0
- package/dist/auth/strategies/otp.strategy.js.map +1 -0
- package/dist/auth/strategies/password.strategy.d.ts +14 -0
- package/dist/auth/strategies/password.strategy.js +130 -0
- package/dist/auth/strategies/password.strategy.js.map +1 -0
- package/dist/auth/utils/duration.util.d.ts +8 -0
- package/dist/auth/utils/duration.util.js +29 -0
- package/dist/auth/utils/duration.util.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/auth-entities.d.ts +7 -0
- package/dist/migrations/auth-entities.js +18 -0
- package/dist/migrations/auth-entities.js.map +1 -0
- package/dist/migrations/auth-schema.initializer.d.ts +9 -0
- package/dist/migrations/auth-schema.initializer.js +36 -0
- package/dist/migrations/auth-schema.initializer.js.map +1 -0
- package/dist/migrations/auth.migration.v1.d.ts +12 -0
- package/dist/migrations/auth.migration.v1.js +157 -0
- package/dist/migrations/auth.migration.v1.js.map +1 -0
- package/dist/migrations/auth.migration.v2.d.ts +8 -0
- package/dist/migrations/auth.migration.v2.js +39 -0
- package/dist/migrations/auth.migration.v2.js.map +1 -0
- package/dist/migrations/auth.migrations.d.ts +2 -0
- package/dist/migrations/auth.migrations.js +8 -0
- package/dist/migrations/auth.migrations.js.map +1 -0
- package/dist/migrations/migration.runner.d.ts +9 -0
- package/dist/migrations/migration.runner.js +67 -0
- package/dist/migrations/migration.runner.js.map +1 -0
- package/dist/migrations/migration.service.d.ts +9 -0
- package/dist/migrations/migration.service.js +71 -0
- package/dist/migrations/migration.service.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var AuthModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.AUTH_MODULE_OPTIONS = exports.AuthModule = void 0;
|
|
11
|
+
// src/auth/auth.module.ts
|
|
12
|
+
const common_1 = require("@nestjs/common");
|
|
13
|
+
const core_1 = require("@nestjs/core");
|
|
14
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
15
|
+
const auth_entity_1 = require("./entities/auth.entity");
|
|
16
|
+
const oauth_provider_entity_1 = require("./entities/oauth-provider.entity");
|
|
17
|
+
const otp_token_entity_1 = require("./entities/otp-token.entity");
|
|
18
|
+
const mfa_method_entity_1 = require("./entities/mfa-method.entity");
|
|
19
|
+
const auth_service_1 = require("./auth.service");
|
|
20
|
+
const auth_controller_1 = require("./auth.controller");
|
|
21
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
22
|
+
const jwt_strategy_1 = require("./core/jwt.strategy");
|
|
23
|
+
const passport_1 = require("@nestjs/passport");
|
|
24
|
+
const auth_identify_entity_1 = require("./entities/auth-identify.entity");
|
|
25
|
+
const session_entity_1 = require("./entities/session.entity");
|
|
26
|
+
const auth_module_options_interface_1 = require("./interfaces/auth-module-options.interface");
|
|
27
|
+
Object.defineProperty(exports, "AUTH_MODULE_OPTIONS", { enumerable: true, get: function () { return auth_module_options_interface_1.AUTH_MODULE_OPTIONS; } });
|
|
28
|
+
const auth_notification_provider_interface_1 = require("./interfaces/auth-notification-provider.interface");
|
|
29
|
+
const core_2 = require("@nestjs/core");
|
|
30
|
+
const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
|
|
31
|
+
const optional_auth_guard_1 = require("./guards/optional-auth.guard");
|
|
32
|
+
const throttler_1 = require("@nestjs/throttler");
|
|
33
|
+
const registration_1 = require("./core/registration");
|
|
34
|
+
const auth_schema_initializer_1 = require("../migrations/auth-schema.initializer");
|
|
35
|
+
const migration_service_1 = require("../migrations/migration.service");
|
|
36
|
+
const local_auth_strategy_1 = require("./strategies/local-auth.strategy");
|
|
37
|
+
const google_strategy_1 = require("./strategies/oauth/google.strategy");
|
|
38
|
+
const facebook_strategy_1 = require("./strategies/oauth/facebook.strategy");
|
|
39
|
+
const apple_strategy_1 = require("./strategies/oauth/apple.strategy");
|
|
40
|
+
const oauth_strategy_1 = require("./strategies/oauth/oauth.strategy");
|
|
41
|
+
let AuthModule = AuthModule_1 = class AuthModule {
|
|
42
|
+
static register(options) {
|
|
43
|
+
const optionsProvider = {
|
|
44
|
+
provide: auth_module_options_interface_1.AUTH_MODULE_OPTIONS,
|
|
45
|
+
useValue: options,
|
|
46
|
+
};
|
|
47
|
+
const strategyProviders = (0, registration_1.createStrategyProviders)(options);
|
|
48
|
+
const providers = [
|
|
49
|
+
optionsProvider,
|
|
50
|
+
...this.createProviders(),
|
|
51
|
+
...strategyProviders,
|
|
52
|
+
];
|
|
53
|
+
if (options.notificationProvider) {
|
|
54
|
+
providers.push({
|
|
55
|
+
provide: auth_notification_provider_interface_1.AUTH_NOTIFICATION_PROVIDER,
|
|
56
|
+
useClass: options.notificationProvider,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (!options.disableGlobalGuard) {
|
|
60
|
+
providers.push({
|
|
61
|
+
provide: core_2.APP_GUARD,
|
|
62
|
+
useClass: jwt_auth_guard_1.JwtAuthGuard,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
module: AuthModule_1,
|
|
67
|
+
imports: [
|
|
68
|
+
typeorm_1.TypeOrmModule.forFeature([
|
|
69
|
+
auth_entity_1.Auth,
|
|
70
|
+
oauth_provider_entity_1.OAuthProvider,
|
|
71
|
+
auth_identify_entity_1.AuthIdentifier,
|
|
72
|
+
otp_token_entity_1.OtpToken,
|
|
73
|
+
mfa_method_entity_1.MfaMethod,
|
|
74
|
+
session_entity_1.Session,
|
|
75
|
+
]),
|
|
76
|
+
passport_1.PassportModule,
|
|
77
|
+
jwt_1.JwtModule.register({
|
|
78
|
+
secret: options.jwtSecret || process.env.JWT_SECRET || 'changeme',
|
|
79
|
+
signOptions: { expiresIn: (options.accessTokenExpiresIn || '15m') },
|
|
80
|
+
}),
|
|
81
|
+
throttler_1.ThrottlerModule.forRoot({
|
|
82
|
+
throttlers: [
|
|
83
|
+
{
|
|
84
|
+
ttl: (options.throttlerTtl || 60) * 1000,
|
|
85
|
+
limit: options.throttlerLimit || 10,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
}),
|
|
89
|
+
...(options.imports || []),
|
|
90
|
+
],
|
|
91
|
+
providers,
|
|
92
|
+
controllers: options.disableController ? [] : [auth_controller_1.AuthController],
|
|
93
|
+
exports: [auth_service_1.AuthService, jwt_auth_guard_1.JwtAuthGuard, optional_auth_guard_1.OptionalAuthGuard, throttler_1.ThrottlerModule, jwt_1.JwtModule, passport_1.PassportModule, auth_module_options_interface_1.AUTH_MODULE_OPTIONS],
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
static createProviders() {
|
|
97
|
+
return [
|
|
98
|
+
jwt_strategy_1.JwtStrategy,
|
|
99
|
+
auth_service_1.AuthService,
|
|
100
|
+
jwt_auth_guard_1.JwtAuthGuard,
|
|
101
|
+
optional_auth_guard_1.OptionalAuthGuard,
|
|
102
|
+
throttler_1.ThrottlerGuard,
|
|
103
|
+
migration_service_1.AuthMigrationService,
|
|
104
|
+
auth_schema_initializer_1.AuthSchemaInitializer,
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
static forRootAsync(options) {
|
|
108
|
+
const asyncOptionsProvider = {
|
|
109
|
+
provide: auth_module_options_interface_1.AUTH_MODULE_OPTIONS,
|
|
110
|
+
useFactory: options.useFactory,
|
|
111
|
+
inject: options.inject || [],
|
|
112
|
+
};
|
|
113
|
+
return {
|
|
114
|
+
module: AuthModule_1,
|
|
115
|
+
global: true,
|
|
116
|
+
imports: [
|
|
117
|
+
typeorm_1.TypeOrmModule.forFeature([
|
|
118
|
+
auth_entity_1.Auth,
|
|
119
|
+
oauth_provider_entity_1.OAuthProvider,
|
|
120
|
+
auth_identify_entity_1.AuthIdentifier,
|
|
121
|
+
otp_token_entity_1.OtpToken,
|
|
122
|
+
mfa_method_entity_1.MfaMethod,
|
|
123
|
+
session_entity_1.Session,
|
|
124
|
+
]),
|
|
125
|
+
passport_1.PassportModule,
|
|
126
|
+
jwt_1.JwtModule.registerAsync({
|
|
127
|
+
inject: [auth_module_options_interface_1.AUTH_MODULE_OPTIONS],
|
|
128
|
+
useFactory: async (opts) => ({
|
|
129
|
+
secret: opts.jwtSecret || process.env.JWT_SECRET || 'changeme',
|
|
130
|
+
signOptions: {
|
|
131
|
+
expiresIn: (opts.accessTokenExpiresIn || '15m'),
|
|
132
|
+
},
|
|
133
|
+
}),
|
|
134
|
+
}),
|
|
135
|
+
throttler_1.ThrottlerModule.forRootAsync({
|
|
136
|
+
inject: [auth_module_options_interface_1.AUTH_MODULE_OPTIONS],
|
|
137
|
+
useFactory: async (opts) => ({
|
|
138
|
+
throttlers: [
|
|
139
|
+
{
|
|
140
|
+
ttl: (opts.throttlerTtl || 60) * 1000,
|
|
141
|
+
limit: opts.throttlerLimit || 10,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
}),
|
|
145
|
+
}),
|
|
146
|
+
...(options.imports || []),
|
|
147
|
+
],
|
|
148
|
+
providers: [
|
|
149
|
+
asyncOptionsProvider,
|
|
150
|
+
...this.createProviders(),
|
|
151
|
+
local_auth_strategy_1.LocalAuthStrategy,
|
|
152
|
+
google_strategy_1.GoogleAuthStrategy,
|
|
153
|
+
facebook_strategy_1.FacebookAuthStrategy,
|
|
154
|
+
apple_strategy_1.AppleAuthStrategy,
|
|
155
|
+
oauth_strategy_1.OAuthAuthStrategy,
|
|
156
|
+
{
|
|
157
|
+
provide: auth_notification_provider_interface_1.AUTH_NOTIFICATION_PROVIDER,
|
|
158
|
+
useFactory: (opts, moduleRef) => {
|
|
159
|
+
const provider = opts.notificationProvider;
|
|
160
|
+
if (!provider)
|
|
161
|
+
return null;
|
|
162
|
+
if (typeof provider === 'function' && provider.prototype) {
|
|
163
|
+
try {
|
|
164
|
+
return moduleRef.get(provider, { strict: false });
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
// Not registered as a provider, instantiate it directly
|
|
168
|
+
return new provider();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return provider;
|
|
172
|
+
},
|
|
173
|
+
inject: [auth_module_options_interface_1.AUTH_MODULE_OPTIONS, core_1.ModuleRef],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
provide: core_2.APP_GUARD,
|
|
177
|
+
useFactory: (opts, guard) => {
|
|
178
|
+
return opts.disableGlobalGuard ? { canActivate: () => true } : guard;
|
|
179
|
+
},
|
|
180
|
+
inject: [auth_module_options_interface_1.AUTH_MODULE_OPTIONS, jwt_auth_guard_1.JwtAuthGuard],
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
controllers: options.disableController ? [] : [auth_controller_1.AuthController],
|
|
184
|
+
exports: [auth_service_1.AuthService, jwt_auth_guard_1.JwtAuthGuard, optional_auth_guard_1.OptionalAuthGuard, throttler_1.ThrottlerModule, jwt_1.JwtModule, passport_1.PassportModule, auth_module_options_interface_1.AUTH_MODULE_OPTIONS],
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
exports.AuthModule = AuthModule;
|
|
189
|
+
exports.AuthModule = AuthModule = AuthModule_1 = __decorate([
|
|
190
|
+
(0, common_1.Global)(),
|
|
191
|
+
(0, common_1.Module)({})
|
|
192
|
+
], AuthModule);
|
|
193
|
+
//# sourceMappingURL=auth.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { JwtService } from '@nestjs/jwt';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
3
|
+
import { SignupDto } from './dto/requests/signup.dto';
|
|
4
|
+
import { LoginDto } from './dto/requests/login.dto';
|
|
5
|
+
import { LocalAuthStrategy } from './strategies/local-auth.strategy';
|
|
6
|
+
import { OAuthAuthStrategy } from './strategies/oauth/oauth.strategy';
|
|
7
|
+
import { AuthStrategy } from './enums/auth-type.enum';
|
|
8
|
+
import { Auth } from './entities/auth.entity';
|
|
9
|
+
import { Session } from './entities/session.entity';
|
|
10
|
+
import { OtpToken } from './entities/otp-token.entity';
|
|
11
|
+
import { MfaMethod, MfaType } from './entities/mfa-method.entity';
|
|
12
|
+
import { AuthModuleOptions } from './interfaces/auth-module-options.interface';
|
|
13
|
+
import { AuthNotificationProvider } from './interfaces/auth-notification-provider.interface';
|
|
14
|
+
import { ForgotPasswordDto } from './dto/requests/forgot-password.dto';
|
|
15
|
+
import { ResetPasswordDto } from './dto/requests/reset-password.dto';
|
|
16
|
+
import { UpdatePasswordDto } from './dto/requests/update-password.dto';
|
|
17
|
+
import { MagicLinkRequestDto, MagicLinkVerifyDto } from './dto/requests/magic-link.dto';
|
|
18
|
+
import { SecureAccountDto } from './dto/requests/secure-account.dto';
|
|
19
|
+
import { AuthIdentifier } from './entities/auth-identify.entity';
|
|
20
|
+
export declare class AuthService {
|
|
21
|
+
private jwtService;
|
|
22
|
+
private passwordStrategy;
|
|
23
|
+
private oauthStrategy;
|
|
24
|
+
private sessionRepository;
|
|
25
|
+
private authRepo;
|
|
26
|
+
private otpRepo;
|
|
27
|
+
private mfaRepo;
|
|
28
|
+
private options;
|
|
29
|
+
private notificationProvider?;
|
|
30
|
+
private readonly logger;
|
|
31
|
+
constructor(jwtService: JwtService, passwordStrategy: LocalAuthStrategy, oauthStrategy: OAuthAuthStrategy, sessionRepository: Repository<Session>, authRepo: Repository<Auth>, otpRepo: Repository<OtpToken>, mfaRepo: Repository<MfaMethod>, options: AuthModuleOptions, notificationProvider?: AuthNotificationProvider);
|
|
32
|
+
private generateTokens;
|
|
33
|
+
private fingerprint;
|
|
34
|
+
private createSession;
|
|
35
|
+
signup(dto: SignupDto, uid?: string, userAgent?: string, ip?: string): Promise<{
|
|
36
|
+
message: string;
|
|
37
|
+
auth: {
|
|
38
|
+
uid: string;
|
|
39
|
+
strategy: AuthStrategy;
|
|
40
|
+
identifiers: AuthIdentifier[];
|
|
41
|
+
isPrimary: boolean;
|
|
42
|
+
isVerified: boolean;
|
|
43
|
+
isActive: boolean;
|
|
44
|
+
meta?: Record<string, any>;
|
|
45
|
+
lastUsedAt?: Date;
|
|
46
|
+
oauthProviders?: import("..").OAuthProvider[];
|
|
47
|
+
id: string;
|
|
48
|
+
createdAt: Date;
|
|
49
|
+
updatedAt: Date;
|
|
50
|
+
deletedAt: Date;
|
|
51
|
+
};
|
|
52
|
+
verificationRequired: boolean;
|
|
53
|
+
} | {
|
|
54
|
+
auth: {
|
|
55
|
+
uid: string;
|
|
56
|
+
strategy: AuthStrategy;
|
|
57
|
+
identifiers: AuthIdentifier[];
|
|
58
|
+
isPrimary: boolean;
|
|
59
|
+
isVerified: boolean;
|
|
60
|
+
isActive: boolean;
|
|
61
|
+
meta?: Record<string, any>;
|
|
62
|
+
lastUsedAt?: Date;
|
|
63
|
+
oauthProviders?: import("..").OAuthProvider[];
|
|
64
|
+
id: string;
|
|
65
|
+
createdAt: Date;
|
|
66
|
+
updatedAt: Date;
|
|
67
|
+
deletedAt: Date;
|
|
68
|
+
};
|
|
69
|
+
accessToken: string;
|
|
70
|
+
refreshToken: string;
|
|
71
|
+
message?: undefined;
|
|
72
|
+
verificationRequired?: undefined;
|
|
73
|
+
}>;
|
|
74
|
+
login(dto: LoginDto, userAgent?: string, ip?: string): Promise<{
|
|
75
|
+
message: string;
|
|
76
|
+
auth: Auth;
|
|
77
|
+
verificationRequired: boolean;
|
|
78
|
+
tokens: any;
|
|
79
|
+
mfaRequired?: undefined;
|
|
80
|
+
} | {
|
|
81
|
+
message: string;
|
|
82
|
+
auth: {
|
|
83
|
+
uid: string;
|
|
84
|
+
strategy: AuthStrategy;
|
|
85
|
+
identifiers: AuthIdentifier[];
|
|
86
|
+
isPrimary: boolean;
|
|
87
|
+
isVerified: boolean;
|
|
88
|
+
isActive: boolean;
|
|
89
|
+
meta?: Record<string, any>;
|
|
90
|
+
lastUsedAt?: Date;
|
|
91
|
+
oauthProviders?: import("..").OAuthProvider[];
|
|
92
|
+
id: string;
|
|
93
|
+
createdAt: Date;
|
|
94
|
+
updatedAt: Date;
|
|
95
|
+
deletedAt: Date;
|
|
96
|
+
};
|
|
97
|
+
mfaRequired: boolean;
|
|
98
|
+
tokens: any;
|
|
99
|
+
verificationRequired?: undefined;
|
|
100
|
+
} | {
|
|
101
|
+
auth: {
|
|
102
|
+
uid: string;
|
|
103
|
+
strategy: AuthStrategy;
|
|
104
|
+
identifiers: AuthIdentifier[];
|
|
105
|
+
isPrimary: boolean;
|
|
106
|
+
isVerified: boolean;
|
|
107
|
+
isActive: boolean;
|
|
108
|
+
meta?: Record<string, any>;
|
|
109
|
+
lastUsedAt?: Date;
|
|
110
|
+
oauthProviders?: import("..").OAuthProvider[];
|
|
111
|
+
id: string;
|
|
112
|
+
createdAt: Date;
|
|
113
|
+
updatedAt: Date;
|
|
114
|
+
deletedAt: Date;
|
|
115
|
+
};
|
|
116
|
+
accessToken: string;
|
|
117
|
+
refreshToken: string;
|
|
118
|
+
message?: undefined;
|
|
119
|
+
verificationRequired?: undefined;
|
|
120
|
+
tokens?: undefined;
|
|
121
|
+
mfaRequired?: undefined;
|
|
122
|
+
}>;
|
|
123
|
+
private sendVerification;
|
|
124
|
+
verifyCode(uid: string, code: string, userAgent?: string, ip?: string): Promise<{
|
|
125
|
+
message: string;
|
|
126
|
+
tokens?: undefined;
|
|
127
|
+
auth?: undefined;
|
|
128
|
+
} | {
|
|
129
|
+
message: string;
|
|
130
|
+
tokens: {
|
|
131
|
+
accessToken: string;
|
|
132
|
+
refreshToken: string;
|
|
133
|
+
};
|
|
134
|
+
auth: Auth;
|
|
135
|
+
}>;
|
|
136
|
+
resendVerification(uid: string): Promise<{
|
|
137
|
+
message: string;
|
|
138
|
+
}>;
|
|
139
|
+
refreshTokens(refreshToken: string, currentUserAgent: string, currentIp?: string): Promise<{
|
|
140
|
+
accessToken: string;
|
|
141
|
+
refreshToken: string;
|
|
142
|
+
}>;
|
|
143
|
+
logout(refreshToken?: string): Promise<void>;
|
|
144
|
+
forgotPassword(dto: ForgotPasswordDto): Promise<{
|
|
145
|
+
message: string;
|
|
146
|
+
}>;
|
|
147
|
+
resetPassword(dto: ResetPasswordDto): Promise<{
|
|
148
|
+
message: string;
|
|
149
|
+
}>;
|
|
150
|
+
updatePassword(uid: string, dto: UpdatePasswordDto, userAgent?: string, ip?: string): Promise<{
|
|
151
|
+
message: string;
|
|
152
|
+
}>;
|
|
153
|
+
secureAccount(dto: SecureAccountDto & {
|
|
154
|
+
uid: string;
|
|
155
|
+
}): Promise<{
|
|
156
|
+
message: string;
|
|
157
|
+
}>;
|
|
158
|
+
requestMagicLink(dto: MagicLinkRequestDto): Promise<{
|
|
159
|
+
message: string;
|
|
160
|
+
}>;
|
|
161
|
+
verifyMagicLink(dto: MagicLinkVerifyDto, userAgent?: string, ip?: string): Promise<{
|
|
162
|
+
tokens: {
|
|
163
|
+
accessToken: string;
|
|
164
|
+
refreshToken: string;
|
|
165
|
+
};
|
|
166
|
+
auth: Auth;
|
|
167
|
+
}>;
|
|
168
|
+
enrollMfa(uid: string, type: MfaType): Promise<{
|
|
169
|
+
secret: string;
|
|
170
|
+
otpauth: string;
|
|
171
|
+
}>;
|
|
172
|
+
activateMfa(uid: string, type: MfaType, code: string): Promise<{
|
|
173
|
+
message: string;
|
|
174
|
+
}>;
|
|
175
|
+
viewAll(): Promise<import("./dto/responses/auth-response.dto").AuthResponseDto[]>;
|
|
176
|
+
me(uid: string): Promise<import("./dto/responses/auth-response.dto").AuthResponseDto>;
|
|
177
|
+
viewAllMyAuthMethods(uid: string): Promise<import("./dto/responses/auth-response.dto").AuthResponseDto[]>;
|
|
178
|
+
deleteAccount(uid: string): Promise<void>;
|
|
179
|
+
deleteAuthMethod(uid: string, authId: string): Promise<void>;
|
|
180
|
+
}
|