@ackplus/nest-auth 1.1.15 → 1.1.17
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 +82 -6
- package/package.json +1 -1
- package/src/lib/admin-console/static/index.html +4736 -432
- package/src/lib/auth/auth.module.d.ts.map +1 -1
- package/src/lib/auth/auth.module.js +2 -0
- package/src/lib/auth/controllers/auth.controller.d.ts +1 -0
- package/src/lib/auth/controllers/auth.controller.d.ts.map +1 -1
- package/src/lib/auth/controllers/auth.controller.js +19 -2
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.d.ts +1 -0
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +8 -0
- package/src/lib/auth/entities/trusted-device.entity.d.ts +13 -0
- package/src/lib/auth/entities/trusted-device.entity.d.ts.map +1 -0
- package/src/lib/auth/entities/trusted-device.entity.js +51 -0
- package/src/lib/auth/index.d.ts +1 -0
- package/src/lib/auth/index.d.ts.map +1 -1
- package/src/lib/auth/index.js +1 -0
- package/src/lib/auth/services/auth.service.d.ts +1 -0
- package/src/lib/auth/services/auth.service.d.ts.map +1 -1
- package/src/lib/auth/services/auth.service.js +30 -1
- package/src/lib/auth/services/mfa.service.d.ts +5 -1
- package/src/lib/auth/services/mfa.service.d.ts.map +1 -1
- package/src/lib/auth/services/mfa.service.js +44 -1
- package/src/lib/auth.constants.d.ts +1 -0
- package/src/lib/auth.constants.d.ts.map +1 -1
- package/src/lib/auth.constants.js +2 -1
- package/src/lib/core/entities.d.ts +2 -1
- package/src/lib/core/entities.d.ts.map +1 -1
- package/src/lib/core/entities.js +2 -0
- package/src/lib/core/interfaces/mfa-options.interface.d.ts +3 -0
- package/src/lib/core/interfaces/mfa-options.interface.d.ts.map +1 -1
- package/src/lib/utils/cookie.helper.d.ts +78 -0
- package/src/lib/utils/cookie.helper.d.ts.map +1 -0
- package/src/lib/utils/cookie.helper.js +115 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CookieHelper = void 0;
|
|
4
|
+
class CookieHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Parse cookies from request headers
|
|
7
|
+
* @param req Express Request object
|
|
8
|
+
* @returns Object containing all cookies
|
|
9
|
+
*/
|
|
10
|
+
static parseCookies(req) {
|
|
11
|
+
const cookieHeader = req.headers.cookie;
|
|
12
|
+
if (!cookieHeader) {
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
const cookies = {};
|
|
16
|
+
cookieHeader.split(';').forEach(cookie => {
|
|
17
|
+
const [name, ...rest] = cookie.split('=');
|
|
18
|
+
const value = rest.join('=').trim();
|
|
19
|
+
if (name) {
|
|
20
|
+
cookies[name.trim()] = decodeURIComponent(value);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return cookies;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get a specific cookie value from request
|
|
27
|
+
* @param req Express Request object
|
|
28
|
+
* @param name Cookie name
|
|
29
|
+
* @returns Cookie value or undefined
|
|
30
|
+
*/
|
|
31
|
+
static get(req, name) {
|
|
32
|
+
const cookies = this.parseCookies(req);
|
|
33
|
+
return cookies[name];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Set a cookie in response
|
|
37
|
+
* @param res Express Response object
|
|
38
|
+
* @param name Cookie name
|
|
39
|
+
* @param value Cookie value
|
|
40
|
+
* @param options Cookie options
|
|
41
|
+
*/
|
|
42
|
+
static set(res, name, value, options) {
|
|
43
|
+
const defaultOptions = {
|
|
44
|
+
httpOnly: true,
|
|
45
|
+
secure: process.env.NODE_ENV === 'production',
|
|
46
|
+
sameSite: 'lax',
|
|
47
|
+
path: '/',
|
|
48
|
+
};
|
|
49
|
+
const finalOptions = { ...defaultOptions, ...options };
|
|
50
|
+
res.cookie(name, value, finalOptions);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Update a cookie (alias for set)
|
|
54
|
+
* @param res Express Response object
|
|
55
|
+
* @param name Cookie name
|
|
56
|
+
* @param value New cookie value
|
|
57
|
+
* @param options Cookie options
|
|
58
|
+
*/
|
|
59
|
+
static update(res, name, value, options) {
|
|
60
|
+
this.set(res, name, value, options);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Delete a cookie by setting its expiration to the past
|
|
64
|
+
* @param res Express Response object
|
|
65
|
+
* @param name Cookie name
|
|
66
|
+
* @param options Additional options (path, domain)
|
|
67
|
+
*/
|
|
68
|
+
static delete(res, name, options) {
|
|
69
|
+
const deleteOptions = {
|
|
70
|
+
...options,
|
|
71
|
+
expires: new Date(0),
|
|
72
|
+
maxAge: 0,
|
|
73
|
+
};
|
|
74
|
+
res.clearCookie(name, deleteOptions);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a cookie exists in request
|
|
78
|
+
* @param req Express Request object
|
|
79
|
+
* @param name Cookie name
|
|
80
|
+
* @returns True if cookie exists
|
|
81
|
+
*/
|
|
82
|
+
static exists(req, name) {
|
|
83
|
+
return this.get(req, name) !== undefined;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get all cookies from request
|
|
87
|
+
* @param req Express Request object
|
|
88
|
+
* @returns Object containing all cookies
|
|
89
|
+
*/
|
|
90
|
+
static getAll(req) {
|
|
91
|
+
return this.parseCookies(req);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Set multiple cookies at once
|
|
95
|
+
* @param res Express Response object
|
|
96
|
+
* @param cookies Object with cookie names as keys and values/options as values
|
|
97
|
+
*/
|
|
98
|
+
static setMultiple(res, cookies) {
|
|
99
|
+
Object.entries(cookies).forEach(([name, { value, options }]) => {
|
|
100
|
+
this.set(res, name, value, options);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Delete multiple cookies at once
|
|
105
|
+
* @param res Express Response object
|
|
106
|
+
* @param names Array of cookie names to delete
|
|
107
|
+
* @param options Common options for all cookies (path, domain)
|
|
108
|
+
*/
|
|
109
|
+
static deleteMultiple(res, names, options) {
|
|
110
|
+
names.forEach(name => {
|
|
111
|
+
this.delete(res, name, options);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.CookieHelper = CookieHelper;
|