@ackplus/nest-auth 2.7.6 → 2.8.1
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/dist/lib/admin-console/admin-console.module.d.ts +3 -1
- package/dist/lib/admin-console/admin-console.module.d.ts.map +1 -1
- package/dist/lib/admin-console/admin-console.module.js +10 -0
- package/dist/lib/admin-console/admin-console.module.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +13 -5
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.js +112 -15
- package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-blocked-domains.controller.d.ts +23 -0
- package/dist/lib/admin-console/controllers/admin-blocked-domains.controller.d.ts.map +1 -0
- package/dist/lib/admin-console/controllers/admin-blocked-domains.controller.js +105 -0
- package/dist/lib/admin-console/controllers/admin-blocked-domains.controller.js.map +1 -0
- package/dist/lib/admin-console/controllers/admin-console.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.js +5 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.js.map +1 -1
- package/dist/lib/admin-console/decorators/admin-throttle.decorator.d.ts +4 -0
- package/dist/lib/admin-console/decorators/admin-throttle.decorator.d.ts.map +1 -0
- package/dist/lib/admin-console/decorators/admin-throttle.decorator.js +11 -0
- package/dist/lib/admin-console/decorators/admin-throttle.decorator.js.map +1 -0
- package/dist/lib/admin-console/dto/admin-blocked-domain.dto.d.ts +4 -0
- package/dist/lib/admin-console/dto/admin-blocked-domain.dto.d.ts.map +1 -0
- package/dist/lib/admin-console/dto/admin-blocked-domain.dto.js +32 -0
- package/dist/lib/admin-console/dto/admin-blocked-domain.dto.js.map +1 -0
- package/dist/lib/admin-console/entities/admin-user.entity.d.ts +1 -0
- package/dist/lib/admin-console/entities/admin-user.entity.d.ts.map +1 -1
- package/dist/lib/admin-console/entities/admin-user.entity.js +15 -0
- package/dist/lib/admin-console/entities/admin-user.entity.js.map +1 -1
- package/dist/lib/admin-console/guards/admin-brute-force.guard.d.ts +12 -0
- package/dist/lib/admin-console/guards/admin-brute-force.guard.d.ts.map +1 -0
- package/dist/lib/admin-console/guards/admin-brute-force.guard.js +45 -0
- package/dist/lib/admin-console/guards/admin-brute-force.guard.js.map +1 -0
- package/dist/lib/admin-console/guards/admin-session.guard.d.ts +3 -1
- package/dist/lib/admin-console/guards/admin-session.guard.d.ts.map +1 -1
- package/dist/lib/admin-console/guards/admin-session.guard.js +10 -2
- package/dist/lib/admin-console/guards/admin-session.guard.js.map +1 -1
- package/dist/lib/admin-console/middleware/admin-security-headers.middleware.d.ts +6 -0
- package/dist/lib/admin-console/middleware/admin-security-headers.middleware.d.ts.map +1 -0
- package/dist/lib/admin-console/middleware/admin-security-headers.middleware.js +35 -0
- package/dist/lib/admin-console/middleware/admin-security-headers.middleware.js.map +1 -0
- package/dist/lib/admin-console/services/admin-auth.service.d.ts +2 -0
- package/dist/lib/admin-console/services/admin-auth.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-auth.service.js +14 -0
- package/dist/lib/admin-console/services/admin-auth.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.d.ts +2 -0
- package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.js +25 -3
- package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-session.service.d.ts +1 -0
- package/dist/lib/admin-console/services/admin-session.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-session.service.js +4 -3
- package/dist/lib/admin-console/services/admin-session.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-user.service.d.ts +1 -0
- package/dist/lib/admin-console/services/admin-user.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-user.service.js +11 -0
- package/dist/lib/admin-console/services/admin-user.service.js.map +1 -1
- package/dist/lib/admin-console/static/index.html +387 -372
- package/dist/lib/admin-console/static/nest-auth.json +371 -4
- package/dist/lib/auth/auth.module.d.ts.map +1 -1
- package/dist/lib/auth/auth.module.js +5 -0
- package/dist/lib/auth/auth.module.js.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.d.ts +14 -1
- package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.js +62 -2
- package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.js +2 -1
- package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
- package/dist/lib/auth/data/disposable-domains.generated.d.ts +2 -0
- package/dist/lib/auth/data/disposable-domains.generated.d.ts.map +1 -0
- package/dist/lib/auth/data/disposable-domains.generated.js +8061 -0
- package/dist/lib/auth/data/disposable-domains.generated.js.map +1 -0
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts +3 -0
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js +34 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js.map +1 -1
- package/dist/lib/auth/entities/blocked-email-domain.entity.d.ts +8 -0
- package/dist/lib/auth/entities/blocked-email-domain.entity.d.ts.map +1 -0
- package/dist/lib/auth/entities/blocked-email-domain.entity.js +41 -0
- package/dist/lib/auth/entities/blocked-email-domain.entity.js.map +1 -0
- package/dist/lib/auth/entities/otp.entity.d.ts +1 -0
- package/dist/lib/auth/entities/otp.entity.d.ts.map +1 -1
- package/dist/lib/auth/entities/otp.entity.js +5 -0
- package/dist/lib/auth/entities/otp.entity.js.map +1 -1
- package/dist/lib/auth/guards/auth.guard.d.ts +4 -1
- package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
- package/dist/lib/auth/guards/auth.guard.js +40 -7
- package/dist/lib/auth/guards/auth.guard.js.map +1 -1
- package/dist/lib/auth/interceptors/token-response.interceptor.d.ts +4 -2
- package/dist/lib/auth/interceptors/token-response.interceptor.d.ts.map +1 -1
- package/dist/lib/auth/interceptors/token-response.interceptor.js +18 -4
- package/dist/lib/auth/interceptors/token-response.interceptor.js.map +1 -1
- package/dist/lib/auth/services/auth.service.d.ts +3 -1
- package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
- package/dist/lib/auth/services/auth.service.js +52 -13
- package/dist/lib/auth/services/auth.service.js.map +1 -1
- package/dist/lib/auth/services/disposable-email.service.d.ts +37 -0
- package/dist/lib/auth/services/disposable-email.service.d.ts.map +1 -0
- package/dist/lib/auth/services/disposable-email.service.js +141 -0
- package/dist/lib/auth/services/disposable-email.service.js.map +1 -0
- package/dist/lib/auth/services/mfa.service.d.ts +1 -1
- package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
- package/dist/lib/auth/services/mfa.service.js +8 -3
- package/dist/lib/auth/services/mfa.service.js.map +1 -1
- package/dist/lib/auth/services/otp-flow.service.d.ts.map +1 -1
- package/dist/lib/auth/services/otp-flow.service.js +19 -0
- package/dist/lib/auth/services/otp-flow.service.js.map +1 -1
- package/dist/lib/auth.constants.d.ts +34 -0
- package/dist/lib/auth.constants.d.ts.map +1 -1
- package/dist/lib/auth.constants.js +22 -1
- package/dist/lib/auth.constants.js.map +1 -1
- package/dist/lib/core/core.module.d.ts.map +1 -1
- package/dist/lib/core/core.module.js +18 -0
- package/dist/lib/core/core.module.js.map +1 -1
- package/dist/lib/core/decorators/captcha.decorator.d.ts +2 -0
- package/dist/lib/core/decorators/captcha.decorator.d.ts.map +1 -0
- package/dist/lib/core/decorators/captcha.decorator.js +10 -0
- package/dist/lib/core/decorators/captcha.decorator.js.map +1 -0
- package/dist/lib/core/decorators/lockout.decorator.d.ts +2 -0
- package/dist/lib/core/decorators/lockout.decorator.d.ts.map +1 -0
- package/dist/lib/core/decorators/lockout.decorator.js +10 -0
- package/dist/lib/core/decorators/lockout.decorator.js.map +1 -0
- package/dist/lib/core/decorators/rate-limit.decorator.d.ts +3 -0
- package/dist/lib/core/decorators/rate-limit.decorator.d.ts.map +1 -0
- package/dist/lib/core/decorators/rate-limit.decorator.js +10 -0
- package/dist/lib/core/decorators/rate-limit.decorator.js.map +1 -0
- package/dist/lib/core/decorators/skip-email-verification.decorator.d.ts +3 -0
- package/dist/lib/core/decorators/skip-email-verification.decorator.d.ts.map +1 -0
- package/dist/lib/core/decorators/skip-email-verification.decorator.js +8 -0
- package/dist/lib/core/decorators/skip-email-verification.decorator.js.map +1 -0
- package/dist/lib/core/entities.d.ts +3 -1
- package/dist/lib/core/entities.d.ts.map +1 -1
- package/dist/lib/core/entities.js +3 -0
- package/dist/lib/core/entities.js.map +1 -1
- package/dist/lib/core/guards/captcha.guard.d.ts +8 -0
- package/dist/lib/core/guards/captcha.guard.d.ts.map +1 -0
- package/dist/lib/core/guards/captcha.guard.js +59 -0
- package/dist/lib/core/guards/captcha.guard.js.map +1 -0
- package/dist/lib/core/guards/lockout.guard.d.ts +10 -0
- package/dist/lib/core/guards/lockout.guard.d.ts.map +1 -0
- package/dist/lib/core/guards/lockout.guard.js +55 -0
- package/dist/lib/core/guards/lockout.guard.js.map +1 -0
- package/dist/lib/core/guards/rate-limit.guard.d.ts +10 -0
- package/dist/lib/core/guards/rate-limit.guard.d.ts.map +1 -0
- package/dist/lib/core/guards/rate-limit.guard.js +39 -0
- package/dist/lib/core/guards/rate-limit.guard.js.map +1 -0
- package/dist/lib/core/index.d.ts +8 -0
- package/dist/lib/core/index.d.ts.map +1 -1
- package/dist/lib/core/index.js +8 -0
- package/dist/lib/core/index.js.map +1 -1
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +52 -0
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
- package/dist/lib/core/interfaces/rate-limit.interface.d.ts +19 -0
- package/dist/lib/core/interfaces/rate-limit.interface.d.ts.map +1 -0
- package/dist/lib/core/interfaces/rate-limit.interface.js +3 -0
- package/dist/lib/core/interfaces/rate-limit.interface.js.map +1 -0
- package/dist/lib/core/interfaces/session-options.interface.d.ts +5 -0
- package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.d.ts +1 -0
- package/dist/lib/core/providers/apple-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.js +4 -1
- package/dist/lib/core/providers/apple-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.d.ts +6 -4
- package/dist/lib/core/providers/base-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.js +23 -6
- package/dist/lib/core/providers/base-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/email-auth.provider.js +3 -3
- package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/facebook-auth.provider.d.ts +1 -0
- package/dist/lib/core/providers/facebook-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/facebook-auth.provider.js +2 -0
- package/dist/lib/core/providers/facebook-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.js +1 -0
- package/dist/lib/core/providers/github-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.js +1 -0
- package/dist/lib/core/providers/google-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/jwt-auth.provider.d.ts +4 -19
- package/dist/lib/core/providers/jwt-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/jwt-auth.provider.js +14 -10
- package/dist/lib/core/providers/jwt-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/phone-auth.provider.js +3 -3
- package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
- package/dist/lib/core/services/auth-config.service.d.ts +2 -0
- package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
- package/dist/lib/core/services/auth-config.service.js +62 -12
- package/dist/lib/core/services/auth-config.service.js.map +1 -1
- package/dist/lib/core/services/auth-provider-registry.service.d.ts +6 -1
- package/dist/lib/core/services/auth-provider-registry.service.d.ts.map +1 -1
- package/dist/lib/core/services/auth-provider-registry.service.js +19 -3
- package/dist/lib/core/services/auth-provider-registry.service.js.map +1 -1
- package/dist/lib/core/services/csrf.service.d.ts +13 -0
- package/dist/lib/core/services/csrf.service.d.ts.map +1 -0
- package/dist/lib/core/services/csrf.service.js +88 -0
- package/dist/lib/core/services/csrf.service.js.map +1 -0
- package/dist/lib/core/services/jwt.service.d.ts +1 -2
- package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
- package/dist/lib/core/services/jwt.service.js +3 -8
- package/dist/lib/core/services/jwt.service.js.map +1 -1
- package/dist/lib/core/services/lockout.service.d.ts +24 -0
- package/dist/lib/core/services/lockout.service.d.ts.map +1 -0
- package/dist/lib/core/services/lockout.service.js +129 -0
- package/dist/lib/core/services/lockout.service.js.map +1 -0
- package/dist/lib/core/services/rate-limit.service.d.ts +22 -0
- package/dist/lib/core/services/rate-limit.service.d.ts.map +1 -0
- package/dist/lib/core/services/rate-limit.service.js +116 -0
- package/dist/lib/core/services/rate-limit.service.js.map +1 -0
- package/dist/lib/nest-auth.module.d.ts.map +1 -1
- package/dist/lib/nest-auth.module.js +3 -0
- package/dist/lib/nest-auth.module.js.map +1 -1
- package/dist/lib/permission/services/permission.service.d.ts.map +1 -1
- package/dist/lib/permission/services/permission.service.js +2 -1
- package/dist/lib/permission/services/permission.service.js.map +1 -1
- package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
- package/dist/lib/user/entities/user.entity.js +2 -0
- package/dist/lib/user/entities/user.entity.js.map +1 -1
- package/dist/lib/utils/common-passwords.d.ts +2 -0
- package/dist/lib/utils/common-passwords.d.ts.map +1 -0
- package/dist/lib/utils/common-passwords.js +16 -0
- package/dist/lib/utils/common-passwords.js.map +1 -0
- package/dist/lib/utils/otp.d.ts.map +1 -1
- package/dist/lib/utils/otp.js +11 -3
- package/dist/lib/utils/otp.js.map +1 -1
- package/dist/lib/utils/password-policy.util.d.ts +11 -0
- package/dist/lib/utils/password-policy.util.d.ts.map +1 -0
- package/dist/lib/utils/password-policy.util.js +76 -0
- package/dist/lib/utils/password-policy.util.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"openapi": "3.0.0",
|
|
3
3
|
"paths": {
|
|
4
|
+
"/auth/csrf": {
|
|
5
|
+
"get": {
|
|
6
|
+
"description": "Cookie mode: sets/rotates the double-submit CSRF cookie and returns the token to echo in the CSRF header (default `x-csrf-token`) on state-changing requests. Call with credentials so the cookie is stored. Returns `{ enabled: false }` when CSRF is not configured.",
|
|
7
|
+
"operationId": "AuthController_getCsrfToken",
|
|
8
|
+
"parameters": [],
|
|
9
|
+
"responses": {
|
|
10
|
+
"200": {
|
|
11
|
+
"description": ""
|
|
12
|
+
},
|
|
13
|
+
"400": {
|
|
14
|
+
"description": "Validation failed (bad input).",
|
|
15
|
+
"content": {
|
|
16
|
+
"application/json": {
|
|
17
|
+
"schema": {
|
|
18
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"401": {
|
|
24
|
+
"description": "Missing, invalid, or expired authentication.",
|
|
25
|
+
"content": {
|
|
26
|
+
"application/json": {
|
|
27
|
+
"schema": {
|
|
28
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"security": [
|
|
35
|
+
{
|
|
36
|
+
"access-token": []
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"summary": "Get a CSRF token",
|
|
40
|
+
"tags": [
|
|
41
|
+
"Authentication"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
4
45
|
"/auth/signup": {
|
|
5
46
|
"post": {
|
|
6
47
|
"description": "Register a new user. Response format depends on accessTokenType configuration:\n- Header mode (default): Returns tokens in response body\n- Cookie mode: Sets tokens in HTTP-only cookies and returns success message",
|
|
@@ -1875,7 +1916,7 @@
|
|
|
1875
1916
|
}
|
|
1876
1917
|
}
|
|
1877
1918
|
},
|
|
1878
|
-
"summary": "
|
|
1919
|
+
"summary": "Bootstrap the first admin (secret-key gated)",
|
|
1879
1920
|
"tags": [
|
|
1880
1921
|
"Admin · Console"
|
|
1881
1922
|
]
|
|
@@ -2279,7 +2320,7 @@
|
|
|
2279
2320
|
}
|
|
2280
2321
|
}
|
|
2281
2322
|
},
|
|
2282
|
-
"summary": "Reset an admin's password",
|
|
2323
|
+
"summary": "Reset an admin's password (secret-key gated recovery)",
|
|
2283
2324
|
"tags": [
|
|
2284
2325
|
"Admin · Console"
|
|
2285
2326
|
]
|
|
@@ -4108,12 +4149,304 @@
|
|
|
4108
4149
|
"Admin · Permissions"
|
|
4109
4150
|
]
|
|
4110
4151
|
}
|
|
4152
|
+
},
|
|
4153
|
+
"/auth/admin/api/blocked-email-domains": {
|
|
4154
|
+
"get": {
|
|
4155
|
+
"operationId": "AdminBlockedDomainsController_list",
|
|
4156
|
+
"parameters": [
|
|
4157
|
+
{
|
|
4158
|
+
"name": "search",
|
|
4159
|
+
"required": true,
|
|
4160
|
+
"in": "query",
|
|
4161
|
+
"schema": {
|
|
4162
|
+
"type": "string"
|
|
4163
|
+
}
|
|
4164
|
+
},
|
|
4165
|
+
{
|
|
4166
|
+
"name": "page",
|
|
4167
|
+
"required": true,
|
|
4168
|
+
"in": "query",
|
|
4169
|
+
"schema": {
|
|
4170
|
+
"type": "string"
|
|
4171
|
+
}
|
|
4172
|
+
},
|
|
4173
|
+
{
|
|
4174
|
+
"name": "pageSize",
|
|
4175
|
+
"required": true,
|
|
4176
|
+
"in": "query",
|
|
4177
|
+
"schema": {
|
|
4178
|
+
"type": "string"
|
|
4179
|
+
}
|
|
4180
|
+
}
|
|
4181
|
+
],
|
|
4182
|
+
"responses": {
|
|
4183
|
+
"200": {
|
|
4184
|
+
"description": ""
|
|
4185
|
+
},
|
|
4186
|
+
"400": {
|
|
4187
|
+
"description": "Validation failed (bad input).",
|
|
4188
|
+
"content": {
|
|
4189
|
+
"application/json": {
|
|
4190
|
+
"schema": {
|
|
4191
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4192
|
+
}
|
|
4193
|
+
}
|
|
4194
|
+
}
|
|
4195
|
+
},
|
|
4196
|
+
"401": {
|
|
4197
|
+
"description": "Admin session missing or invalid.",
|
|
4198
|
+
"content": {
|
|
4199
|
+
"application/json": {
|
|
4200
|
+
"schema": {
|
|
4201
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4202
|
+
}
|
|
4203
|
+
}
|
|
4204
|
+
}
|
|
4205
|
+
},
|
|
4206
|
+
"403": {
|
|
4207
|
+
"description": "Authenticated but not permitted.",
|
|
4208
|
+
"content": {
|
|
4209
|
+
"application/json": {
|
|
4210
|
+
"schema": {
|
|
4211
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
}
|
|
4215
|
+
}
|
|
4216
|
+
},
|
|
4217
|
+
"security": [
|
|
4218
|
+
{
|
|
4219
|
+
"admin-session": []
|
|
4220
|
+
}
|
|
4221
|
+
],
|
|
4222
|
+
"summary": "List blocked email domains (searchable, paginated)",
|
|
4223
|
+
"tags": [
|
|
4224
|
+
"Admin · Blocked Email Domains"
|
|
4225
|
+
]
|
|
4226
|
+
},
|
|
4227
|
+
"post": {
|
|
4228
|
+
"operationId": "AdminBlockedDomainsController_add",
|
|
4229
|
+
"parameters": [],
|
|
4230
|
+
"requestBody": {
|
|
4231
|
+
"required": true,
|
|
4232
|
+
"content": {
|
|
4233
|
+
"application/json": {
|
|
4234
|
+
"schema": {
|
|
4235
|
+
"$ref": "#/components/schemas/AdminAddBlockedDomainsDto"
|
|
4236
|
+
}
|
|
4237
|
+
}
|
|
4238
|
+
}
|
|
4239
|
+
},
|
|
4240
|
+
"responses": {
|
|
4241
|
+
"201": {
|
|
4242
|
+
"description": "{ added, skipped }"
|
|
4243
|
+
},
|
|
4244
|
+
"400": {
|
|
4245
|
+
"description": "Validation failed (bad input).",
|
|
4246
|
+
"content": {
|
|
4247
|
+
"application/json": {
|
|
4248
|
+
"schema": {
|
|
4249
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
}
|
|
4253
|
+
},
|
|
4254
|
+
"401": {
|
|
4255
|
+
"description": "Admin session missing or invalid.",
|
|
4256
|
+
"content": {
|
|
4257
|
+
"application/json": {
|
|
4258
|
+
"schema": {
|
|
4259
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4260
|
+
}
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4263
|
+
},
|
|
4264
|
+
"403": {
|
|
4265
|
+
"description": "Authenticated but not permitted.",
|
|
4266
|
+
"content": {
|
|
4267
|
+
"application/json": {
|
|
4268
|
+
"schema": {
|
|
4269
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4270
|
+
}
|
|
4271
|
+
}
|
|
4272
|
+
}
|
|
4273
|
+
}
|
|
4274
|
+
},
|
|
4275
|
+
"security": [
|
|
4276
|
+
{
|
|
4277
|
+
"admin-session": []
|
|
4278
|
+
}
|
|
4279
|
+
],
|
|
4280
|
+
"summary": "Add one or more blocked domains",
|
|
4281
|
+
"tags": [
|
|
4282
|
+
"Admin · Blocked Email Domains"
|
|
4283
|
+
]
|
|
4284
|
+
}
|
|
4285
|
+
},
|
|
4286
|
+
"/auth/admin/api/blocked-email-domains/stats": {
|
|
4287
|
+
"get": {
|
|
4288
|
+
"operationId": "AdminBlockedDomainsController_stats",
|
|
4289
|
+
"parameters": [],
|
|
4290
|
+
"responses": {
|
|
4291
|
+
"200": {
|
|
4292
|
+
"description": ""
|
|
4293
|
+
},
|
|
4294
|
+
"400": {
|
|
4295
|
+
"description": "Validation failed (bad input).",
|
|
4296
|
+
"content": {
|
|
4297
|
+
"application/json": {
|
|
4298
|
+
"schema": {
|
|
4299
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4300
|
+
}
|
|
4301
|
+
}
|
|
4302
|
+
}
|
|
4303
|
+
},
|
|
4304
|
+
"401": {
|
|
4305
|
+
"description": "Admin session missing or invalid.",
|
|
4306
|
+
"content": {
|
|
4307
|
+
"application/json": {
|
|
4308
|
+
"schema": {
|
|
4309
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4310
|
+
}
|
|
4311
|
+
}
|
|
4312
|
+
}
|
|
4313
|
+
},
|
|
4314
|
+
"403": {
|
|
4315
|
+
"description": "Authenticated but not permitted.",
|
|
4316
|
+
"content": {
|
|
4317
|
+
"application/json": {
|
|
4318
|
+
"schema": {
|
|
4319
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4320
|
+
}
|
|
4321
|
+
}
|
|
4322
|
+
}
|
|
4323
|
+
}
|
|
4324
|
+
},
|
|
4325
|
+
"security": [
|
|
4326
|
+
{
|
|
4327
|
+
"admin-session": []
|
|
4328
|
+
}
|
|
4329
|
+
],
|
|
4330
|
+
"summary": "Blocklist stats (current count + size of the built-in default list)",
|
|
4331
|
+
"tags": [
|
|
4332
|
+
"Admin · Blocked Email Domains"
|
|
4333
|
+
]
|
|
4334
|
+
}
|
|
4335
|
+
},
|
|
4336
|
+
"/auth/admin/api/blocked-email-domains/import-defaults": {
|
|
4337
|
+
"post": {
|
|
4338
|
+
"operationId": "AdminBlockedDomainsController_importDefaults",
|
|
4339
|
+
"parameters": [],
|
|
4340
|
+
"responses": {
|
|
4341
|
+
"201": {
|
|
4342
|
+
"description": "{ imported, total }"
|
|
4343
|
+
},
|
|
4344
|
+
"400": {
|
|
4345
|
+
"description": "Validation failed (bad input).",
|
|
4346
|
+
"content": {
|
|
4347
|
+
"application/json": {
|
|
4348
|
+
"schema": {
|
|
4349
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4350
|
+
}
|
|
4351
|
+
}
|
|
4352
|
+
}
|
|
4353
|
+
},
|
|
4354
|
+
"401": {
|
|
4355
|
+
"description": "Admin session missing or invalid.",
|
|
4356
|
+
"content": {
|
|
4357
|
+
"application/json": {
|
|
4358
|
+
"schema": {
|
|
4359
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4360
|
+
}
|
|
4361
|
+
}
|
|
4362
|
+
}
|
|
4363
|
+
},
|
|
4364
|
+
"403": {
|
|
4365
|
+
"description": "Authenticated but not permitted.",
|
|
4366
|
+
"content": {
|
|
4367
|
+
"application/json": {
|
|
4368
|
+
"schema": {
|
|
4369
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4370
|
+
}
|
|
4371
|
+
}
|
|
4372
|
+
}
|
|
4373
|
+
}
|
|
4374
|
+
},
|
|
4375
|
+
"security": [
|
|
4376
|
+
{
|
|
4377
|
+
"admin-session": []
|
|
4378
|
+
}
|
|
4379
|
+
],
|
|
4380
|
+
"summary": "Import the built-in default disposable-domain list",
|
|
4381
|
+
"tags": [
|
|
4382
|
+
"Admin · Blocked Email Domains"
|
|
4383
|
+
]
|
|
4384
|
+
}
|
|
4385
|
+
},
|
|
4386
|
+
"/auth/admin/api/blocked-email-domains/{idOrDomain}": {
|
|
4387
|
+
"delete": {
|
|
4388
|
+
"operationId": "AdminBlockedDomainsController_remove",
|
|
4389
|
+
"parameters": [
|
|
4390
|
+
{
|
|
4391
|
+
"name": "idOrDomain",
|
|
4392
|
+
"required": true,
|
|
4393
|
+
"in": "path",
|
|
4394
|
+
"schema": {
|
|
4395
|
+
"type": "string"
|
|
4396
|
+
}
|
|
4397
|
+
}
|
|
4398
|
+
],
|
|
4399
|
+
"responses": {
|
|
4400
|
+
"200": {
|
|
4401
|
+
"description": ""
|
|
4402
|
+
},
|
|
4403
|
+
"400": {
|
|
4404
|
+
"description": "Validation failed (bad input).",
|
|
4405
|
+
"content": {
|
|
4406
|
+
"application/json": {
|
|
4407
|
+
"schema": {
|
|
4408
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4411
|
+
}
|
|
4412
|
+
},
|
|
4413
|
+
"401": {
|
|
4414
|
+
"description": "Admin session missing or invalid.",
|
|
4415
|
+
"content": {
|
|
4416
|
+
"application/json": {
|
|
4417
|
+
"schema": {
|
|
4418
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4419
|
+
}
|
|
4420
|
+
}
|
|
4421
|
+
}
|
|
4422
|
+
},
|
|
4423
|
+
"403": {
|
|
4424
|
+
"description": "Authenticated but not permitted.",
|
|
4425
|
+
"content": {
|
|
4426
|
+
"application/json": {
|
|
4427
|
+
"schema": {
|
|
4428
|
+
"$ref": "#/components/schemas/ApiErrorResponseDto"
|
|
4429
|
+
}
|
|
4430
|
+
}
|
|
4431
|
+
}
|
|
4432
|
+
}
|
|
4433
|
+
},
|
|
4434
|
+
"security": [
|
|
4435
|
+
{
|
|
4436
|
+
"admin-session": []
|
|
4437
|
+
}
|
|
4438
|
+
],
|
|
4439
|
+
"summary": "Remove a blocked domain (by id or domain)",
|
|
4440
|
+
"tags": [
|
|
4441
|
+
"Admin · Blocked Email Domains"
|
|
4442
|
+
]
|
|
4443
|
+
}
|
|
4111
4444
|
}
|
|
4112
4445
|
},
|
|
4113
4446
|
"info": {
|
|
4114
4447
|
"title": "@ackplus/nest-auth API",
|
|
4115
4448
|
"description": "Authentication & authorization API for **@ackplus/nest-auth**.\n\n### Conventions\n- **Base URL** — routes are shown relative to your app’s global prefix. The reference example app uses `/api`, so a route like `POST /auth/login` is called at `POST /api/auth/login`.\n- **Auth** — most endpoints require a Bearer access token: `Authorization: Bearer <accessToken>`. The **Admin** endpoints use an httpOnly session cookie set by `POST /auth/admin/login`.\n- **Token modes** — in *header* mode (default) tokens are returned in the response body; in *cookie* mode they are set as httpOnly cookies. Controlled by `accessTokenType`.\n- **Errors** — failures return `{ statusCode, error, message, code }`; the machine-readable `code` is the value to branch on.\n\nBrowse by section in the sidebar: **Authentication**, **Password**, **Verification**, **Passwordless**, **MFA**, and the **Admin** groups.",
|
|
4116
|
-
"version": "2.
|
|
4449
|
+
"version": "2.8.1",
|
|
4117
4450
|
"contact": {}
|
|
4118
4451
|
},
|
|
4119
4452
|
"tags": [
|
|
@@ -4387,9 +4720,24 @@
|
|
|
4387
4720
|
},
|
|
4388
4721
|
"name": {
|
|
4389
4722
|
"type": "string",
|
|
4390
|
-
"description": "
|
|
4723
|
+
"description": "Full display name from the provider. Apple only returns the user's name on the FIRST native sign-in, so pass it here to persist it (ignored by other providers). Prefer `firstName`/`lastName` when you have them separately.",
|
|
4391
4724
|
"example": "Ada Lovelace"
|
|
4392
4725
|
},
|
|
4726
|
+
"firstName": {
|
|
4727
|
+
"type": "string",
|
|
4728
|
+
"description": "User's given/first name captured by the frontend. Needed for Apple Sign In, which returns the name to the app ONLY on the first authorization (never in the id_token on later logins) — capture it then and send it here. Ignored by providers that already supply a name.",
|
|
4729
|
+
"example": "Ada"
|
|
4730
|
+
},
|
|
4731
|
+
"lastName": {
|
|
4732
|
+
"type": "string",
|
|
4733
|
+
"description": "User's family/last name captured by the frontend (see `firstName`). Needed for Apple Sign In on the first authorization.",
|
|
4734
|
+
"example": "Lovelace"
|
|
4735
|
+
},
|
|
4736
|
+
"avatarUrl": {
|
|
4737
|
+
"type": "string",
|
|
4738
|
+
"description": "Avatar / profile-picture URL supplied by the frontend. Apple Sign In does NOT provide a photo, so pass one here only if your app sourced it elsewhere. Google returns its own `picture`, used as a fallback when this is omitted.",
|
|
4739
|
+
"example": "https://example.com/avatar/ada.png"
|
|
4740
|
+
},
|
|
4393
4741
|
"nonce": {
|
|
4394
4742
|
"type": "string",
|
|
4395
4743
|
"description": "Nonce used for native sign-in replay protection. When provided, it must match the `nonce` claim in the verified Apple identityToken."
|
|
@@ -5767,6 +6115,25 @@
|
|
|
5767
6115
|
"description": "Optional description of what this permission allows"
|
|
5768
6116
|
}
|
|
5769
6117
|
}
|
|
6118
|
+
},
|
|
6119
|
+
"AdminAddBlockedDomainsDto": {
|
|
6120
|
+
"type": "object",
|
|
6121
|
+
"properties": {
|
|
6122
|
+
"domains": {
|
|
6123
|
+
"description": "One or more email domains to block (e.g. [\"mailinator.com\", \"guerrillamail.com\"]). Max 1000 per request; each max 253 chars.",
|
|
6124
|
+
"example": [
|
|
6125
|
+
"mailinator.com",
|
|
6126
|
+
"guerrillamail.com"
|
|
6127
|
+
],
|
|
6128
|
+
"type": "array",
|
|
6129
|
+
"items": {
|
|
6130
|
+
"type": "string"
|
|
6131
|
+
}
|
|
6132
|
+
}
|
|
6133
|
+
},
|
|
6134
|
+
"required": [
|
|
6135
|
+
"domains"
|
|
6136
|
+
]
|
|
5770
6137
|
}
|
|
5771
6138
|
}
|
|
5772
6139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/auth.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/auth.module.ts"],"names":[],"mappings":"AA+BA,qBAgDa,UAAU;CACtB"}
|
|
@@ -26,6 +26,8 @@ const session_token_service_1 = require("./services/session-token.service");
|
|
|
26
26
|
const invite_service_1 = require("./services/invite.service");
|
|
27
27
|
const otp_entity_1 = require("./entities/otp.entity");
|
|
28
28
|
const mfa_secret_entity_1 = require("./entities/mfa-secret.entity");
|
|
29
|
+
const blocked_email_domain_entity_1 = require("./entities/blocked-email-domain.entity");
|
|
30
|
+
const disposable_email_service_1 = require("./services/disposable-email.service");
|
|
29
31
|
const access_key_entity_1 = require("../user/entities/access-key.entity");
|
|
30
32
|
const trusted_device_entity_1 = require("./entities/trusted-device.entity");
|
|
31
33
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
@@ -49,6 +51,7 @@ exports.AuthModule = AuthModule = __decorate([
|
|
|
49
51
|
access_key_entity_1.NestAuthAccessKey,
|
|
50
52
|
identity_entity_1.NestAuthIdentity,
|
|
51
53
|
trusted_device_entity_1.NestAuthTrustedDevice,
|
|
54
|
+
blocked_email_domain_entity_1.NestAuthBlockedEmailDomain,
|
|
52
55
|
]),
|
|
53
56
|
(0, common_1.forwardRef)(() => core_module_1.CoreModule),
|
|
54
57
|
(0, common_1.forwardRef)(() => user_module_1.UserModule),
|
|
@@ -69,6 +72,7 @@ exports.AuthModule = AuthModule = __decorate([
|
|
|
69
72
|
logout_service_1.LogoutService,
|
|
70
73
|
session_token_service_1.SessionTokenService,
|
|
71
74
|
invite_service_1.InviteService,
|
|
75
|
+
disposable_email_service_1.DisposableEmailService,
|
|
72
76
|
],
|
|
73
77
|
controllers: [auth_controller_1.AuthController, mfa_controller_1.MfaController],
|
|
74
78
|
exports: [
|
|
@@ -82,6 +86,7 @@ exports.AuthModule = AuthModule = __decorate([
|
|
|
82
86
|
mfa_service_1.MfaService,
|
|
83
87
|
auth_guard_1.NestAuthAuthGuard,
|
|
84
88
|
token_response_interceptor_1.TokenResponseInterceptor,
|
|
89
|
+
disposable_email_service_1.DisposableEmailService,
|
|
85
90
|
],
|
|
86
91
|
})
|
|
87
92
|
], AuthModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../src/lib/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,0DAAsD;AACtD,wDAAoD;AACpD,oDAAwD;AACxD,0FAAqF;AACrF,mEAA+D;AAC/D,iEAA6D;AAC7D,wGAA0F;AAC1F,sEAAoE;AACpE,6CAAgD;AAChD,8DAA4D;AAC5D,kEAA8D;AAC9D,0EAAsE;AACtE,kEAA6D;AAC7D,8DAA0D;AAC1D,4EAAuE;AACvE,8DAA0D;AAC1D,sDAAoD;AACpD,oEAAiE;AACjE,0EAAuE;AACvE,4EAAyE;AACzE,yDAA2D;AAC3D,qDAAiD;AACjD,qDAAiD;AACjD,8DAA0D;AAC1D,2DAAuD;AACvD,qDAAiD;AACjD,8CAAiD;
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../src/lib/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,0DAAsD;AACtD,wDAAoD;AACpD,oDAAwD;AACxD,0FAAqF;AACrF,mEAA+D;AAC/D,iEAA6D;AAC7D,wGAA0F;AAC1F,sEAAoE;AACpE,6CAAgD;AAChD,8DAA4D;AAC5D,kEAA8D;AAC9D,0EAAsE;AACtE,kEAA6D;AAC7D,8DAA0D;AAC1D,4EAAuE;AACvE,8DAA0D;AAC1D,sDAAoD;AACpD,oEAAiE;AACjE,wFAAoF;AACpF,kFAA6E;AAC7E,0EAAuE;AACvE,4EAAyE;AACzE,yDAA2D;AAC3D,qDAAiD;AACjD,qDAAiD;AACjD,8DAA0D;AAC1D,2DAAuD;AACvD,qDAAiD;AACjD,8CAAiD;AAkD1C,IAAM,UAAU,GAAhB,MAAM,UAAU;CACtB,CAAA;AADY,gCAAU;qBAAV,UAAU;IAhDtB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,kCAAkB;YAClB,uBAAa,CAAC,UAAU,CAAC;gBACrB,0BAAY;gBACZ,wBAAW;gBACX,qCAAiB;gBACjB,qCAAiB;gBACjB,kCAAgB;gBAChB,6CAAqB;gBACrB,wDAA0B;aAC7B,CAAC;YACF,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6BAAgB,CAAC;SACrC;QACD,SAAS,EAAE;YACP,0BAAW;YACX,wBAAU;YACV,8BAAiB;YACjB,qDAAwB;YACxB,8DAAwB;YACxB,kCAAe;YACf,0CAAmB;YACnB,iCAAc;YACd,8BAAa;YACb,2CAAmB;YACnB,8BAAa;YACb,iDAAsB;SACzB;QACD,WAAW,EAAE,CAAC,gCAAc,EAAE,8BAAa,CAAC;QAC5C,OAAO,EAAE;YACL,0BAAW;YACX,kCAAe;YACf,0CAAmB;YACnB,iCAAc;YACd,8BAAa;YACb,2CAAmB;YACnB,8BAAa;YACb,wBAAU;YACV,8BAAiB;YACjB,qDAAwB;YACxB,iDAAsB;SACzB;KACJ,CAAC;GACW,UAAU,CACtB"}
|
|
@@ -23,6 +23,7 @@ import { NestAuthSwitchTenantRequestDto } from '../dto/requests/switch-tenant.re
|
|
|
23
23
|
import { PasswordService } from '../services/password.service';
|
|
24
24
|
import { VerificationService } from '../services/verification.service';
|
|
25
25
|
import { AuthConfigService } from '../../core/services/auth-config.service';
|
|
26
|
+
import { CsrfService } from '../../core/services/csrf.service';
|
|
26
27
|
import { TenantService } from '../../tenant/services/tenant.service';
|
|
27
28
|
import { NestAuthPasswordlessSendRequestDto } from '../dto/requests/passwordless-send.request.dto';
|
|
28
29
|
export declare class AuthController {
|
|
@@ -32,7 +33,19 @@ export declare class AuthController {
|
|
|
32
33
|
private readonly authConfigService;
|
|
33
34
|
private readonly tenantService;
|
|
34
35
|
private readonly inviteService;
|
|
35
|
-
|
|
36
|
+
private readonly csrfService;
|
|
37
|
+
constructor(authService: AuthService, passwordService: PasswordService, verificationService: VerificationService, authConfigService: AuthConfigService, tenantService: TenantService, inviteService: InviteService, csrfService: CsrfService);
|
|
38
|
+
getCsrfToken(res: Response): {
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
csrfToken?: undefined;
|
|
41
|
+
headerName?: undefined;
|
|
42
|
+
cookieName?: undefined;
|
|
43
|
+
} | {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
csrfToken: string;
|
|
46
|
+
headerName: string;
|
|
47
|
+
cookieName: string;
|
|
48
|
+
};
|
|
36
49
|
signup(input: NestAuthSignupRequestDto): Promise<AuthWithTokensResponseDto>;
|
|
37
50
|
invite(input: NestAuthInviteRequestDto): Promise<{
|
|
38
51
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAmB,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAEhI,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACH,yBAAyB,EACzB,4BAA4B,EAC5B,wCAAwC,EACxC,gCAAgC,EAChC,wCAAwC,EACxC,gCAAgC,EAChC,wCAAwC,EACxC,gCAAgC,EAChC,8BAA8B,EACjC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
|