@ackplus/nest-auth 0.0.39 → 0.0.41
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 +226 -0
- package/package.json +2 -2
- package/src/index.js +12 -0
- package/src/index.js.map +1 -0
- package/src/lib/auth/auth.module.js +52 -0
- package/src/lib/auth/auth.module.js.map +1 -0
- package/src/lib/auth/controllers/auth.controller.js +189 -0
- package/src/lib/auth/controllers/auth.controller.js.map +1 -0
- package/src/lib/auth/controllers/mfa.controller.js +130 -0
- package/src/lib/auth/controllers/mfa.controller.js.map +1 -0
- package/src/lib/auth/dto/index.js +1 -0
- package/src/lib/auth/dto/index.js.map +1 -0
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js +30 -0
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/login.request.dto.js +34 -0
- package/src/lib/auth/dto/requests/login.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js +15 -0
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/reset-password.request.dto.js +42 -0
- package/src/lib/auth/dto/requests/reset-password.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js +16 -0
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/signup.request.dto.js +37 -0
- package/src/lib/auth/dto/requests/signup.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/social-login.request.dto.js +16 -0
- package/src/lib/auth/dto/requests/social-login.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +21 -0
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js +20 -0
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +1 -0
- package/src/lib/auth/dto/responses/auth.response.dto.js +50 -0
- package/src/lib/auth/dto/responses/auth.response.dto.js.map +1 -0
- package/src/lib/auth/entities/mfa-secret.entity.js +50 -0
- package/src/lib/auth/entities/mfa-secret.entity.js.map +1 -0
- package/src/lib/auth/entities/otp.entity.js +50 -0
- package/src/lib/auth/entities/otp.entity.js.map +1 -0
- package/src/lib/auth/events/logged-out-all.event.js +10 -0
- package/src/lib/auth/events/logged-out-all.event.js.map +1 -0
- package/src/lib/auth/events/logged-out.event.js +10 -0
- package/src/lib/auth/events/logged-out.event.js.map +1 -0
- package/src/lib/auth/events/password-reset-requested.event.js +10 -0
- package/src/lib/auth/events/password-reset-requested.event.js.map +1 -0
- package/src/lib/auth/events/password-reset.event.js +10 -0
- package/src/lib/auth/events/password-reset.event.js.map +1 -0
- package/src/lib/auth/events/user-2fa-verified.event.js +10 -0
- package/src/lib/auth/events/user-2fa-verified.event.js.map +1 -0
- package/src/lib/auth/events/user-logged-in.event.js +10 -0
- package/src/lib/auth/events/user-logged-in.event.js.map +1 -0
- package/src/lib/auth/events/user-refresh-token.event.js +10 -0
- package/src/lib/auth/events/user-refresh-token.event.js.map +1 -0
- package/src/lib/auth/index.js +20 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/auth/services/auth.service.js +396 -0
- package/src/lib/auth/services/auth.service.js.map +1 -0
- package/src/lib/auth/services/cookie.service.js +43 -0
- package/src/lib/auth/services/cookie.service.js.map +1 -0
- package/src/lib/auth/services/mfa.service.js +255 -0
- package/src/lib/auth/services/mfa.service.js.map +1 -0
- package/src/lib/auth.constants.js +43 -0
- package/src/lib/auth.constants.js.map +1 -0
- package/src/lib/core/core.module.js +67 -0
- package/src/lib/core/core.module.js.map +1 -0
- package/src/lib/core/decorators/role.decorator.js +14 -0
- package/src/lib/core/decorators/role.decorator.js.map +1 -0
- package/src/lib/core/decorators/skip-mfa.decorator.js +8 -0
- package/src/lib/core/decorators/skip-mfa.decorator.js.map +1 -0
- package/src/lib/core/dto/message.response.dto.js +13 -0
- package/src/lib/core/dto/message.response.dto.js.map +1 -0
- package/src/lib/core/entities.d.ts +1 -1
- package/src/lib/core/entities.js +34 -0
- package/src/lib/core/entities.js.map +1 -0
- package/src/lib/core/guards/auth.guard.js +135 -0
- package/src/lib/core/guards/auth.guard.js.map +1 -0
- package/src/lib/core/guards/role.guard.js +40 -0
- package/src/lib/core/guards/role.guard.js.map +1 -0
- package/src/lib/core/index.js +27 -0
- package/src/lib/core/index.js.map +1 -0
- package/src/lib/core/interfaces/auth-module-options.interface.js +3 -0
- package/src/lib/core/interfaces/auth-module-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/mfa-options.interface.js +10 -0
- package/src/lib/core/interfaces/mfa-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/otp.interface.js +10 -0
- package/src/lib/core/interfaces/otp.interface.js.map +1 -0
- package/src/lib/core/interfaces/session-options.interface.js +9 -0
- package/src/lib/core/interfaces/session-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/token-payload.interface.js +3 -0
- package/src/lib/core/interfaces/token-payload.interface.js.map +1 -0
- package/src/lib/core/providers/apple-auth.provider.js +58 -0
- package/src/lib/core/providers/apple-auth.provider.js.map +1 -0
- package/src/lib/core/providers/base-auth.provider.js +41 -0
- package/src/lib/core/providers/base-auth.provider.js.map +1 -0
- package/src/lib/core/providers/email-auth.provider.js +42 -0
- package/src/lib/core/providers/email-auth.provider.js.map +1 -0
- package/src/lib/core/providers/facebook-auth.provider.js +58 -0
- package/src/lib/core/providers/facebook-auth.provider.js.map +1 -0
- package/src/lib/core/providers/google-auth.provider.js +60 -0
- package/src/lib/core/providers/google-auth.provider.js.map +1 -0
- package/src/lib/core/providers/jwt-auth.provider.js +51 -0
- package/src/lib/core/providers/jwt-auth.provider.js.map +1 -0
- package/src/lib/core/providers/phone-auth.provider.js +45 -0
- package/src/lib/core/providers/phone-auth.provider.js.map +1 -0
- package/src/lib/core/services/auth-provider-registry.service.js +72 -0
- package/src/lib/core/services/auth-provider-registry.service.js.map +1 -0
- package/src/lib/core/services/jwt.service.js +93 -0
- package/src/lib/core/services/jwt.service.js.map +1 -0
- package/src/lib/nest-auth.module.js +118 -0
- package/src/lib/nest-auth.module.js.map +1 -0
- package/src/lib/request-context/request-context.js +108 -0
- package/src/lib/request-context/request-context.js.map +1 -0
- package/src/lib/request-context/request-context.middleware.js +16 -0
- package/src/lib/request-context/request-context.middleware.js.map +1 -0
- package/src/lib/role/entities/permission.entity.js +42 -0
- package/src/lib/role/entities/permission.entity.js.map +1 -0
- package/src/lib/role/entities/role.entity.js +106 -0
- package/src/lib/role/entities/role.entity.js.map +1 -0
- package/src/lib/role/index.js +6 -0
- package/src/lib/role/index.js.map +1 -0
- package/src/lib/role/role.module.js +22 -0
- package/src/lib/role/role.module.js.map +1 -0
- package/src/lib/role/services/role.service.js +220 -0
- package/src/lib/role/services/role.service.js.map +1 -0
- package/src/lib/session/entities/session.entity.js +63 -0
- package/src/lib/session/entities/session.entity.js.map +1 -0
- package/src/lib/session/index.js +8 -0
- package/src/lib/session/index.js.map +1 -0
- package/src/lib/session/services/base-session.service.js +66 -0
- package/src/lib/session/services/base-session.service.js.map +1 -0
- package/src/lib/session/services/database-session.service.js +55 -0
- package/src/lib/session/services/database-session.service.js.map +1 -0
- package/src/lib/session/services/redis-session.service.js +120 -0
- package/src/lib/session/services/redis-session.service.js.map +1 -0
- package/src/lib/session/session.module.js +33 -0
- package/src/lib/session/session.module.js.map +1 -0
- package/src/lib/tenant/entities/tenant.entity.js +44 -0
- package/src/lib/tenant/entities/tenant.entity.js.map +1 -0
- package/src/lib/tenant/events/tenant-created.event.js +10 -0
- package/src/lib/tenant/events/tenant-created.event.js.map +1 -0
- package/src/lib/tenant/events/tenant-deleted.event.js +10 -0
- package/src/lib/tenant/events/tenant-deleted.event.js.map +1 -0
- package/src/lib/tenant/events/tenant-updated.event.js +10 -0
- package/src/lib/tenant/events/tenant-updated.event.js.map +1 -0
- package/src/lib/tenant/index.js +7 -0
- package/src/lib/tenant/index.js.map +1 -0
- package/src/lib/tenant/services/tenant.service.js +136 -0
- package/src/lib/tenant/services/tenant.service.js.map +1 -0
- package/src/lib/tenant/tenant.module.js +27 -0
- package/src/lib/tenant/tenant.module.js.map +1 -0
- package/src/lib/user/dto/requests/update-user.dto.js +24 -0
- package/src/lib/user/dto/requests/update-user.dto.js.map +1 -0
- package/src/lib/user/entities/access-key.entity.js +63 -0
- package/src/lib/user/entities/access-key.entity.js.map +1 -0
- package/src/lib/user/entities/auth-identity.entity.js +47 -0
- package/src/lib/user/entities/auth-identity.entity.js.map +1 -0
- package/src/lib/user/entities/user.entity.d.ts +1 -1
- package/src/lib/user/entities/user.entity.js +192 -0
- package/src/lib/user/entities/user.entity.js.map +1 -0
- package/src/lib/user/events/user-created.event.js +10 -0
- package/src/lib/user/events/user-created.event.js.map +1 -0
- package/src/lib/user/events/user-deleted.event.js +10 -0
- package/src/lib/user/events/user-deleted.event.js.map +1 -0
- package/src/lib/user/events/user-registered.event.js +10 -0
- package/src/lib/user/events/user-registered.event.js.map +1 -0
- package/src/lib/user/events/user-updated.event.js +10 -0
- package/src/lib/user/events/user-updated.event.js.map +1 -0
- package/src/lib/user/index.js +8 -0
- package/src/lib/user/index.js.map +1 -0
- package/src/lib/user/services/access-key.service.js +119 -0
- package/src/lib/user/services/access-key.service.js.map +1 -0
- package/src/lib/user/services/user.service.js +217 -0
- package/src/lib/user/services/user.service.js.map +1 -0
- package/src/lib/user/user.module.js +32 -0
- package/src/lib/user/user.module.js.map +1 -0
- package/src/lib/utils/database.utils.js +8 -0
- package/src/lib/utils/database.utils.js.map +1 -0
- package/src/lib/utils/otp.js +7 -0
- package/src/lib/utils/otp.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -28350
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoleService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const typeorm_2 = require("typeorm");
|
|
8
|
+
const role_entity_1 = require("../entities/role.entity");
|
|
9
|
+
let RoleService = class RoleService {
|
|
10
|
+
constructor(roleRepository) {
|
|
11
|
+
this.roleRepository = roleRepository;
|
|
12
|
+
}
|
|
13
|
+
async createRole(name, guard, tenantId = null, isSystem = false, permissionIds) {
|
|
14
|
+
const existingRole = await this.roleRepository.findOne({
|
|
15
|
+
where: {
|
|
16
|
+
name,
|
|
17
|
+
guard,
|
|
18
|
+
tenantId: tenantId || (0, typeorm_2.IsNull)()
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
if (existingRole) {
|
|
22
|
+
throw new common_1.ConflictException({
|
|
23
|
+
message: `Role with name '${name}' already exists in guard '${guard}'${tenantId ? ` for tenant '${tenantId}'` : ''}`,
|
|
24
|
+
code: 'ROLE_ALREADY_EXISTS'
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const role = await role_entity_1.Role.createRole(name, guard, isSystem, tenantId);
|
|
28
|
+
if (permissionIds) {
|
|
29
|
+
await role.syncPermissions(permissionIds);
|
|
30
|
+
}
|
|
31
|
+
await this.roleRepository.save(role);
|
|
32
|
+
return role;
|
|
33
|
+
}
|
|
34
|
+
async getRoleById(id, options) {
|
|
35
|
+
if (!id) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const role = await this.roleRepository.findOne({
|
|
39
|
+
...(options ? options : {}),
|
|
40
|
+
where: { id }
|
|
41
|
+
});
|
|
42
|
+
if (!role) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return role;
|
|
46
|
+
}
|
|
47
|
+
async getRoleByName(name, guard, tenantId, options) {
|
|
48
|
+
const systemRole = await this.roleRepository.findOne({
|
|
49
|
+
...(options ? options : {}),
|
|
50
|
+
where: {
|
|
51
|
+
name,
|
|
52
|
+
...(guard ? { guard } : {}),
|
|
53
|
+
isSystem: true
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
if (systemRole) {
|
|
57
|
+
return systemRole;
|
|
58
|
+
}
|
|
59
|
+
const role = await this.roleRepository.findOne({
|
|
60
|
+
...(options ? options : {}),
|
|
61
|
+
where: {
|
|
62
|
+
name,
|
|
63
|
+
...(guard ? { guard } : {}),
|
|
64
|
+
...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() })
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return role;
|
|
68
|
+
}
|
|
69
|
+
async getSystemRoles(options) {
|
|
70
|
+
return this.roleRepository.find({
|
|
71
|
+
...(options ? options : {}),
|
|
72
|
+
where: {
|
|
73
|
+
isSystem: true,
|
|
74
|
+
tenantId: (0, typeorm_2.IsNull)(),
|
|
75
|
+
...(options?.where ? options.where : {})
|
|
76
|
+
},
|
|
77
|
+
order: {
|
|
78
|
+
name: 'ASC'
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
async getRoles(options) {
|
|
83
|
+
return this.roleRepository.find(options);
|
|
84
|
+
}
|
|
85
|
+
async getSystemRolesByGuard(guard, options) {
|
|
86
|
+
return this.roleRepository.find({
|
|
87
|
+
...(options ? options : {}),
|
|
88
|
+
where: {
|
|
89
|
+
guard,
|
|
90
|
+
isSystem: true,
|
|
91
|
+
...(options?.where ? options.where : {})
|
|
92
|
+
},
|
|
93
|
+
order: {
|
|
94
|
+
name: 'ASC'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async getRolesByGuard(guard, tenantId, options) {
|
|
99
|
+
if (!guard) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return this.roleRepository.find({
|
|
103
|
+
...(options ? options : {}),
|
|
104
|
+
where: {
|
|
105
|
+
guard,
|
|
106
|
+
...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() }),
|
|
107
|
+
...(options?.where ? options.where : {})
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async getRolesByTenant(tenantId, includeSystemRoles = true, options) {
|
|
112
|
+
if (!tenantId) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
const query = this.roleRepository.createQueryBuilder('role')
|
|
116
|
+
.leftJoinAndSelect('role.rolePermissions', 'rolePermission');
|
|
117
|
+
query.where('role.tenantId = :tenantId', { tenantId });
|
|
118
|
+
if (includeSystemRoles) {
|
|
119
|
+
query.orWhere('role.tenantId IS NULL AND role.isSystem = :isSystem', { isSystem: true });
|
|
120
|
+
}
|
|
121
|
+
if (options) {
|
|
122
|
+
if (options.where) {
|
|
123
|
+
query.andWhere(options.where);
|
|
124
|
+
}
|
|
125
|
+
if (options.order) {
|
|
126
|
+
Object.entries(options.order).forEach(([key, value]) => {
|
|
127
|
+
query.addOrderBy(`role.${key}`, value);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (options.skip) {
|
|
131
|
+
query.skip(options.skip);
|
|
132
|
+
}
|
|
133
|
+
if (options.take) {
|
|
134
|
+
query.take(options.take);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return query.getMany();
|
|
138
|
+
}
|
|
139
|
+
async updateRole(id, data) {
|
|
140
|
+
const role = await this.getRoleById(id);
|
|
141
|
+
if (!role) {
|
|
142
|
+
throw new common_1.NotFoundException({
|
|
143
|
+
message: `Role with ID ${id} not found`,
|
|
144
|
+
code: 'ROLE_NOT_FOUND'
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
if (role.isSystem) {
|
|
148
|
+
throw new common_1.ConflictException({
|
|
149
|
+
message: 'Cannot update system role',
|
|
150
|
+
code: 'SYSTEM_ROLE_UPDATE_ERROR',
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
delete data.isSystem;
|
|
154
|
+
delete data.tenantId;
|
|
155
|
+
if ((data.name && data.name !== role.name) || (data.guard && data.guard !== role.guard)) {
|
|
156
|
+
const systemRole = await this.getRoleByName(data.name || role.name, data.guard || role.guard);
|
|
157
|
+
if (systemRole) {
|
|
158
|
+
throw new common_1.ConflictException({
|
|
159
|
+
message: `Cannot use name '${data.name || role.name}' as it conflicts with a system role`,
|
|
160
|
+
code: 'SYSTEM_ROLE_CONFLICT'
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
const existingRole = await this.getRoleByName(data.name || role.name, data.guard || role.guard, role.tenantId);
|
|
164
|
+
if (existingRole && existingRole.id !== role.id) {
|
|
165
|
+
throw new common_1.ConflictException({
|
|
166
|
+
message: `Role with name '${data.name || role.name}' already exists in guard '${data.guard || role.guard}'${role.tenantId ? ` for tenant '${role.tenantId}'` : ''}`,
|
|
167
|
+
code: 'ROLE_ALREADY_EXISTS'
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
Object.assign(role, data);
|
|
172
|
+
return this.roleRepository.save(role);
|
|
173
|
+
}
|
|
174
|
+
async updateRolePermissions(id, permissionIds) {
|
|
175
|
+
const role = await this.getRoleById(id);
|
|
176
|
+
if (!role) {
|
|
177
|
+
throw new common_1.NotFoundException({
|
|
178
|
+
message: `Role with ID ${id} not found`,
|
|
179
|
+
code: 'ROLE_NOT_FOUND'
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (role.isSystem) {
|
|
183
|
+
throw new common_1.BadRequestException({
|
|
184
|
+
message: 'Cannot update system role',
|
|
185
|
+
code: 'SYSTEM_ROLE_UPDATE_ERROR',
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
await role.syncPermissions(permissionIds);
|
|
189
|
+
return this.roleRepository.save(role);
|
|
190
|
+
}
|
|
191
|
+
async deleteRole(id) {
|
|
192
|
+
const role = await this.getRoleById(id);
|
|
193
|
+
if (!role) {
|
|
194
|
+
throw new common_1.NotFoundException({
|
|
195
|
+
message: `Role with ID ${id} not found`,
|
|
196
|
+
code: 'ROLE_NOT_FOUND'
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
if (role.isSystem) {
|
|
200
|
+
throw new common_1.BadRequestException({
|
|
201
|
+
message: 'Cannot delete system role',
|
|
202
|
+
code: 'SYSTEM_ROLE_DELETE_ERROR',
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
await this.roleRepository.remove(role);
|
|
206
|
+
}
|
|
207
|
+
async deleteSystemRole(id) {
|
|
208
|
+
const role = await this.getRoleById(id);
|
|
209
|
+
if (role?.isSystem) {
|
|
210
|
+
await this.roleRepository.remove(role);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
exports.RoleService = RoleService;
|
|
215
|
+
exports.RoleService = RoleService = tslib_1.__decorate([
|
|
216
|
+
(0, common_1.Injectable)(),
|
|
217
|
+
tslib_1.__param(0, (0, typeorm_1.InjectRepository)(role_entity_1.Role)),
|
|
218
|
+
tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
219
|
+
], RoleService);
|
|
220
|
+
//# sourceMappingURL=role.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/services/role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Session = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const user_entity_1 = require("../../user/entities/user.entity");
|
|
7
|
+
let Session = class Session extends typeorm_1.BaseEntity {
|
|
8
|
+
};
|
|
9
|
+
exports.Session = Session;
|
|
10
|
+
tslib_1.__decorate([
|
|
11
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
12
|
+
tslib_1.__metadata("design:type", String)
|
|
13
|
+
], Session.prototype, "id", void 0);
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
16
|
+
(0, typeorm_1.RelationId)((session) => session.user),
|
|
17
|
+
tslib_1.__metadata("design:type", String)
|
|
18
|
+
], Session.prototype, "userId", void 0);
|
|
19
|
+
tslib_1.__decorate([
|
|
20
|
+
(0, typeorm_1.ManyToOne)(() => user_entity_1.User, { onDelete: 'CASCADE' }),
|
|
21
|
+
(0, typeorm_1.JoinColumn)({ name: 'userId' }),
|
|
22
|
+
tslib_1.__metadata("design:type", user_entity_1.User)
|
|
23
|
+
], Session.prototype, "user", void 0);
|
|
24
|
+
tslib_1.__decorate([
|
|
25
|
+
(0, typeorm_1.Column)('simple-json', { nullable: true, default: '{}' }),
|
|
26
|
+
tslib_1.__metadata("design:type", Object)
|
|
27
|
+
], Session.prototype, "data", void 0);
|
|
28
|
+
tslib_1.__decorate([
|
|
29
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
30
|
+
tslib_1.__metadata("design:type", String)
|
|
31
|
+
], Session.prototype, "refreshToken", void 0);
|
|
32
|
+
tslib_1.__decorate([
|
|
33
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
34
|
+
tslib_1.__metadata("design:type", Date)
|
|
35
|
+
], Session.prototype, "expiresAt", void 0);
|
|
36
|
+
tslib_1.__decorate([
|
|
37
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
38
|
+
tslib_1.__metadata("design:type", String)
|
|
39
|
+
], Session.prototype, "userAgent", void 0);
|
|
40
|
+
tslib_1.__decorate([
|
|
41
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
42
|
+
tslib_1.__metadata("design:type", String)
|
|
43
|
+
], Session.prototype, "deviceName", void 0);
|
|
44
|
+
tslib_1.__decorate([
|
|
45
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
46
|
+
tslib_1.__metadata("design:type", String)
|
|
47
|
+
], Session.prototype, "ipAddress", void 0);
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
50
|
+
tslib_1.__metadata("design:type", Date)
|
|
51
|
+
], Session.prototype, "lastActive", void 0);
|
|
52
|
+
tslib_1.__decorate([
|
|
53
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
54
|
+
tslib_1.__metadata("design:type", Date)
|
|
55
|
+
], Session.prototype, "createdAt", void 0);
|
|
56
|
+
tslib_1.__decorate([
|
|
57
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
|
58
|
+
tslib_1.__metadata("design:type", Date)
|
|
59
|
+
], Session.prototype, "updatedAt", void 0);
|
|
60
|
+
exports.Session = Session = tslib_1.__decorate([
|
|
61
|
+
(0, typeorm_1.Entity)('nest_auth_sessions')
|
|
62
|
+
], Session);
|
|
63
|
+
//# sourceMappingURL=session.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/entities/session.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAUiB;AACjB,iEAAuD;AAIhD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,oBAAU;CAsCtC,CAAA;AAtCY,0BAAO;AAEhB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;mCACpB;AAIX;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;;uCAChC;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sCACzB,kBAAI;qCAAC;AAGX;IADC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qCAC9C;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,IAAI;0CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;2CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;sCACP,IAAI;0CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;sCACP,IAAI;0CAAC;kBArCR,OAAO;IADnB,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,OAAO,CAsCnB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./services/base-session.service"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./services/database-session.service"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./services/redis-session.service"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./session.module"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/session/index.ts"],"names":[],"mappings":";;;AAIA,0EAAgD;AAChD,8EAAoD;AACpD,2EAAiD;AAGjD,2DAAiC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseSessionService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const auth_constants_1 = require("../../auth.constants");
|
|
7
|
+
const common_2 = require("@nestjs/common");
|
|
8
|
+
const request_context_1 = require("../../request-context/request-context");
|
|
9
|
+
const ms_1 = tslib_1.__importDefault(require("ms"));
|
|
10
|
+
const lodash_1 = require("lodash");
|
|
11
|
+
const session_options_interface_1 = require("../../core/interfaces/session-options.interface");
|
|
12
|
+
let BaseSessionService = class BaseSessionService {
|
|
13
|
+
constructor(authModuleOptions) {
|
|
14
|
+
this.authModuleOptions = authModuleOptions;
|
|
15
|
+
const defaultSessionOptions = {
|
|
16
|
+
sessionExpiry: 7 * 24 * 60 * 60 * 1000,
|
|
17
|
+
refreshTokenExpiry: 15 * 60 * 1000,
|
|
18
|
+
storageType: session_options_interface_1.SessionStorageType.DATABASE,
|
|
19
|
+
};
|
|
20
|
+
this.sessionOptions = Object.assign({}, defaultSessionOptions, this.authModuleOptions.session);
|
|
21
|
+
}
|
|
22
|
+
getSessionOptions() {
|
|
23
|
+
return this.sessionOptions;
|
|
24
|
+
}
|
|
25
|
+
async createSessionFromUser(user, extraData = {}) {
|
|
26
|
+
const { deviceName, ipAddress, browser } = request_context_1.RequestContext.getDeviceInfo();
|
|
27
|
+
const { isMfaVerified = false } = extraData;
|
|
28
|
+
if (!user) {
|
|
29
|
+
throw new common_1.UnauthorizedException('User not found');
|
|
30
|
+
}
|
|
31
|
+
const expiresAt = new Date(Date.now() + (0, ms_1.default)(this.authModuleOptions.session.sessionExpiry));
|
|
32
|
+
const roles = await user.getRoles();
|
|
33
|
+
const permissions = await user.getPermissions();
|
|
34
|
+
const session = {
|
|
35
|
+
userId: user.id,
|
|
36
|
+
data: {
|
|
37
|
+
user,
|
|
38
|
+
isMfaVerified: isMfaVerified,
|
|
39
|
+
roles,
|
|
40
|
+
permissions,
|
|
41
|
+
},
|
|
42
|
+
userAgent: [browser, deviceName].join(' - '),
|
|
43
|
+
ipAddress,
|
|
44
|
+
deviceName,
|
|
45
|
+
expiresAt,
|
|
46
|
+
lastActive: new Date(),
|
|
47
|
+
createdAt: new Date(),
|
|
48
|
+
updatedAt: new Date(),
|
|
49
|
+
};
|
|
50
|
+
return this.createSession(session);
|
|
51
|
+
}
|
|
52
|
+
createSessionFromSession(session) {
|
|
53
|
+
const newSession = {
|
|
54
|
+
...(0, lodash_1.omit)(session, 'id'),
|
|
55
|
+
expiresAt: new Date(Date.now() + (0, ms_1.default)(this.authModuleOptions.session.sessionExpiry)),
|
|
56
|
+
};
|
|
57
|
+
return this.createSession(newSession);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.BaseSessionService = BaseSessionService;
|
|
61
|
+
exports.BaseSessionService = BaseSessionService = tslib_1.__decorate([
|
|
62
|
+
(0, common_1.Injectable)(),
|
|
63
|
+
tslib_1.__param(0, (0, common_2.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
|
|
64
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
65
|
+
], BaseSessionService);
|
|
66
|
+
//# sourceMappingURL=base-session.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/base-session.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAmE;AACnE,yDAA2D;AAC3D,2CAAwC;AACxC,2EAAuE;AACvE,oDAAoB;AACpB,mCAA8B;AAE9B,+FAAqG;AAK9F,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAGpC,YAEuB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEvD,MAAM,qBAAqB,GAAmB;YAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YACtC,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YAClC,WAAW,EAAE,8CAAkB,CAAC,QAAQ;SAC3C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAU,EAAE,YAAyC,EAAE;QAC/E,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gCAAc,CAAC,aAAa,EAAE,CAAC;QAC1E,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;QAE5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,8BAAqB,CAAC,gBAAgB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAE1F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAGhD,MAAM,OAAO,GAAmB;YAC5B,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,IAAI,EAAE;gBACF,IAAI;gBACJ,aAAa,EAAE,aAAa;gBAC5B,KAAK;gBACL,WAAW;aACd;YACD,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5C,SAAS;YACT,UAAU;YACV,SAAS;YACT,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,wBAAwB,CAAC,OAAuB;QAC5C,MAAM,UAAU,GAAmB;YAC/B,GAAG,IAAA,aAAI,EAAC,OAAO,EAAE,IAAI,CAAC;YACtB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACrF,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CAWJ,CAAA;AAvEqB,gDAAkB;6BAAlB,kBAAkB;IADvC,IAAA,mBAAU,GAAE;IAKJ,mBAAA,IAAA,eAAM,EAAC,oCAAmB,CAAC,CAAA;;GAJd,kBAAkB,CAuEvC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatabaseSessionService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const typeorm_2 = require("typeorm");
|
|
8
|
+
const session_entity_1 = require("../../session/entities/session.entity");
|
|
9
|
+
const base_session_service_1 = require("./base-session.service");
|
|
10
|
+
const auth_constants_1 = require("../../auth.constants");
|
|
11
|
+
const common_2 = require("@nestjs/common");
|
|
12
|
+
let DatabaseSessionService = class DatabaseSessionService extends base_session_service_1.BaseSessionService {
|
|
13
|
+
constructor(authModuleOptions, sessionRepository) {
|
|
14
|
+
super(authModuleOptions);
|
|
15
|
+
this.authModuleOptions = authModuleOptions;
|
|
16
|
+
this.sessionRepository = sessionRepository;
|
|
17
|
+
}
|
|
18
|
+
async createSession(session) {
|
|
19
|
+
const sessionEntity = await this.sessionRepository.save(session);
|
|
20
|
+
return sessionEntity;
|
|
21
|
+
}
|
|
22
|
+
async getSession(sessionId) {
|
|
23
|
+
return this.sessionRepository.findOne({ where: { id: sessionId } });
|
|
24
|
+
}
|
|
25
|
+
async getUserSessions(userId) {
|
|
26
|
+
return this.sessionRepository.find({ where: { userId } });
|
|
27
|
+
}
|
|
28
|
+
async getCurrentSessions(userId) {
|
|
29
|
+
return this.sessionRepository.find({ where: { userId, expiresAt: (0, typeorm_2.MoreThan)(new Date()) } });
|
|
30
|
+
}
|
|
31
|
+
async updateSession(sessionId, updates) {
|
|
32
|
+
await this.sessionRepository.update(sessionId, updates);
|
|
33
|
+
return this.getSession(sessionId);
|
|
34
|
+
}
|
|
35
|
+
async deleteSession(sessionId) {
|
|
36
|
+
await this.sessionRepository.delete(sessionId);
|
|
37
|
+
}
|
|
38
|
+
async deleteUserSessions(userId) {
|
|
39
|
+
await this.sessionRepository.delete({ userId });
|
|
40
|
+
}
|
|
41
|
+
async revokeSession(sessionId) {
|
|
42
|
+
await this.sessionRepository.delete(sessionId);
|
|
43
|
+
}
|
|
44
|
+
async revokeUserSessions(userId) {
|
|
45
|
+
await this.sessionRepository.delete({ userId });
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.DatabaseSessionService = DatabaseSessionService;
|
|
49
|
+
exports.DatabaseSessionService = DatabaseSessionService = tslib_1.__decorate([
|
|
50
|
+
(0, common_1.Injectable)(),
|
|
51
|
+
tslib_1.__param(0, (0, common_2.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
|
|
52
|
+
tslib_1.__param(1, (0, typeorm_1.InjectRepository)(session_entity_1.Session)),
|
|
53
|
+
tslib_1.__metadata("design:paramtypes", [Object, typeorm_2.Repository])
|
|
54
|
+
], DatabaseSessionService);
|
|
55
|
+
//# sourceMappingURL=database-session.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/database-session.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAA+C;AAC/C,0EAAgE;AAChE,iEAA4D;AAE5D,yDAA2D;AAC3D,2CAAwC;AAKjC,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,yCAAkB;IAC1D,YAEsB,iBAAoC,EAGrC,iBAAsC;QAEvD,KAAK,CAAC,iBAAiB,CAAC,CAAC;QALP,sBAAiB,GAAjB,iBAAiB,CAAmB;QAGrC,sBAAiB,GAAjB,iBAAiB,CAAqB;IAG3D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,kBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAyB;QAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ,CAAA;AAhDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAGJ,mBAAA,IAAA,eAAM,EAAC,oCAAmB,CAAC,CAAA;IAG3B,mBAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qDACU,oBAAU;GANzC,sBAAsB,CAgDlC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisSessionService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const ioredis_1 = require("ioredis");
|
|
7
|
+
const ioredis_2 = require("@nestjs-modules/ioredis");
|
|
8
|
+
const auth_constants_1 = require("../../auth.constants");
|
|
9
|
+
const base_session_service_1 = require("./base-session.service");
|
|
10
|
+
const uuid_1 = require("uuid");
|
|
11
|
+
let RedisSessionService = class RedisSessionService extends base_session_service_1.BaseSessionService {
|
|
12
|
+
constructor(authModuleOptions, redis) {
|
|
13
|
+
super(authModuleOptions);
|
|
14
|
+
this.authModuleOptions = authModuleOptions;
|
|
15
|
+
this.redis = redis;
|
|
16
|
+
this.sessionPrefix = 'session:';
|
|
17
|
+
this.userSessionsPrefix = 'user_sessions:';
|
|
18
|
+
}
|
|
19
|
+
getSessionKey(sessionId) {
|
|
20
|
+
return `${this.sessionPrefix}${sessionId}`;
|
|
21
|
+
}
|
|
22
|
+
getUserSessionsKey(userId) {
|
|
23
|
+
return `${this.userSessionsPrefix}${userId}`;
|
|
24
|
+
}
|
|
25
|
+
async createSession(session) {
|
|
26
|
+
const sessionKey = this.getSessionKey(session.id);
|
|
27
|
+
const userSessionsKey = this.getUserSessionsKey(session.userId);
|
|
28
|
+
await this.redis.hset(sessionKey, {
|
|
29
|
+
id: session.id || (0, uuid_1.v4)(),
|
|
30
|
+
userId: session.userId,
|
|
31
|
+
refreshToken: session.refreshToken,
|
|
32
|
+
userAgent: session.userAgent || '',
|
|
33
|
+
ipAddress: session.ipAddress || '',
|
|
34
|
+
deviceName: session.deviceName || '',
|
|
35
|
+
expiresAt: session.expiresAt.toISOString(),
|
|
36
|
+
lastActive: session.lastActive.toISOString(),
|
|
37
|
+
data: JSON.stringify(session.data),
|
|
38
|
+
});
|
|
39
|
+
await this.redis.sadd(userSessionsKey, session.id);
|
|
40
|
+
const ttl = Math.floor((session.expiresAt.getTime() - Date.now()) / 1000);
|
|
41
|
+
await this.redis.expire(sessionKey, ttl);
|
|
42
|
+
await this.redis.expire(userSessionsKey, ttl);
|
|
43
|
+
return session;
|
|
44
|
+
}
|
|
45
|
+
async getSession(sessionId) {
|
|
46
|
+
const sessionKey = this.getSessionKey(sessionId);
|
|
47
|
+
const sessionData = await this.redis.hgetall(sessionKey);
|
|
48
|
+
if (!sessionData || !sessionData.id) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
id: sessionData.id,
|
|
53
|
+
userId: sessionData.userId,
|
|
54
|
+
refreshToken: sessionData.refreshToken,
|
|
55
|
+
userAgent: sessionData.userAgent,
|
|
56
|
+
ipAddress: sessionData.ipAddress,
|
|
57
|
+
deviceName: sessionData.deviceName,
|
|
58
|
+
expiresAt: new Date(sessionData.expiresAt),
|
|
59
|
+
lastActive: new Date(sessionData.lastActive),
|
|
60
|
+
data: JSON.parse(sessionData.data || '{}'),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async getUserSessions(userId) {
|
|
64
|
+
const userSessionsKey = this.getUserSessionsKey(userId);
|
|
65
|
+
const sessionIds = await this.redis.smembers(userSessionsKey);
|
|
66
|
+
const sessions = [];
|
|
67
|
+
for (const sessionId of sessionIds) {
|
|
68
|
+
const session = await this.getSession(sessionId);
|
|
69
|
+
if (session) {
|
|
70
|
+
sessions.push(session);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return sessions;
|
|
74
|
+
}
|
|
75
|
+
async getCurrentSessions(userId) {
|
|
76
|
+
const sessions = await this.getUserSessions(userId);
|
|
77
|
+
return sessions.filter(session => session.expiresAt > new Date());
|
|
78
|
+
}
|
|
79
|
+
async updateSession(sessionId, updates) {
|
|
80
|
+
const sessionKey = this.getSessionKey(sessionId);
|
|
81
|
+
const session = await this.getSession(sessionId);
|
|
82
|
+
if (!session) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const updatedSession = { ...session, ...updates };
|
|
86
|
+
await this.createSession(updatedSession);
|
|
87
|
+
return this.getSession(sessionId);
|
|
88
|
+
}
|
|
89
|
+
async deleteSession(sessionId) {
|
|
90
|
+
const session = await this.getSession(sessionId);
|
|
91
|
+
if (!session) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const sessionKey = this.getSessionKey(sessionId);
|
|
95
|
+
const userSessionsKey = this.getUserSessionsKey(session.userId);
|
|
96
|
+
await this.redis.del(sessionKey);
|
|
97
|
+
await this.redis.srem(userSessionsKey, sessionId);
|
|
98
|
+
}
|
|
99
|
+
async deleteUserSessions(userId) {
|
|
100
|
+
const userSessionsKey = this.getUserSessionsKey(userId);
|
|
101
|
+
const sessionIds = await this.redis.smembers(userSessionsKey);
|
|
102
|
+
for (const sessionId of sessionIds) {
|
|
103
|
+
await this.deleteSession(sessionId);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async revokeSession(sessionId) {
|
|
107
|
+
await this.deleteSession(sessionId);
|
|
108
|
+
}
|
|
109
|
+
async revokeUserSessions(userId) {
|
|
110
|
+
await this.deleteUserSessions(userId);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
exports.RedisSessionService = RedisSessionService;
|
|
114
|
+
exports.RedisSessionService = RedisSessionService = tslib_1.__decorate([
|
|
115
|
+
(0, common_1.Injectable)(),
|
|
116
|
+
tslib_1.__param(0, (0, common_1.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
|
|
117
|
+
tslib_1.__param(1, (0, ioredis_2.InjectRedis)()),
|
|
118
|
+
tslib_1.__metadata("design:paramtypes", [Object, ioredis_1.Redis])
|
|
119
|
+
], RedisSessionService);
|
|
120
|
+
//# sourceMappingURL=redis-session.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/redis-session.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const session_entity_1 = require("./entities/session.entity");
|
|
8
|
+
const database_session_service_1 = require("./services/database-session.service");
|
|
9
|
+
const base_session_service_1 = require("./services/base-session.service");
|
|
10
|
+
const core_module_1 = require("../core/core.module");
|
|
11
|
+
let SessionModule = class SessionModule {
|
|
12
|
+
};
|
|
13
|
+
exports.SessionModule = SessionModule;
|
|
14
|
+
exports.SessionModule = SessionModule = tslib_1.__decorate([
|
|
15
|
+
(0, common_1.Module)({
|
|
16
|
+
imports: [
|
|
17
|
+
typeorm_1.TypeOrmModule.forFeature([session_entity_1.Session]),
|
|
18
|
+
(0, common_1.forwardRef)(() => core_module_1.CoreModule),
|
|
19
|
+
],
|
|
20
|
+
providers: [
|
|
21
|
+
database_session_service_1.DatabaseSessionService,
|
|
22
|
+
{
|
|
23
|
+
provide: base_session_service_1.BaseSessionService,
|
|
24
|
+
useClass: database_session_service_1.DatabaseSessionService,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
exports: [
|
|
28
|
+
database_session_service_1.DatabaseSessionService,
|
|
29
|
+
base_session_service_1.BaseSessionService,
|
|
30
|
+
],
|
|
31
|
+
})
|
|
32
|
+
], SessionModule);
|
|
33
|
+
//# sourceMappingURL=session.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.module.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/session/session.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,8DAAoD;AACpD,kFAA6E;AAC7E,0EAAqE;AACrE,qDAAiD;AAmB1C,IAAM,aAAa,GAAnB,MAAM,aAAa;CACzB,CAAA;AADY,sCAAa;wBAAb,aAAa;IAjBzB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAO,CAAC,CAAC;YACnC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC/B;QACD,SAAS,EAAE;YACP,iDAAsB;YACtB;gBACI,OAAO,EAAE,yCAAkB;gBAC3B,QAAQ,EAAE,iDAAsB;aACnC;SACJ;QACD,OAAO,EAAE;YACL,iDAAsB;YACtB,yCAAkB;SACrB;KACJ,CAAC;GACW,aAAa,CACzB"}
|