@optimatech88/titomeet-shared-lib 1.0.15 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/auth.guard.d.ts +7 -0
- package/dist/auth/auth.guard.d.ts.map +1 -1
- package/dist/auth/auth.guard.js +41 -1
- package/dist/auth/auth.guard.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/auth/auth.guard.ts +49 -1
- package/src/index.ts +1 -0
|
@@ -14,4 +14,11 @@ export declare class OptionalAuthGuard implements CanActivate {
|
|
|
14
14
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
15
15
|
private extractTokenFromHeader;
|
|
16
16
|
}
|
|
17
|
+
export declare class AdminAuthGuard implements CanActivate {
|
|
18
|
+
private jwtService;
|
|
19
|
+
private prisma;
|
|
20
|
+
constructor(jwtService: JwtService);
|
|
21
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
22
|
+
private extractTokenFromHeader;
|
|
23
|
+
}
|
|
17
24
|
//# sourceMappingURL=auth.guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,qBACa,SAAU,YAAW,WAAW;IAIzC,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,MAAM,CAAe;gBAGnB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0B9D,OAAO,CAAC,sBAAsB;CAI/B;AAGD,qBACa,iBAAkB,YAAW,WAAW;IAIjD,OAAO,CAAC,UAAU;IAHnB,OAAO,CAAC,MAAM,CAAe;gBAGpB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9D,OAAO,CAAC,sBAAsB;CAI/B"}
|
|
1
|
+
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,qBACa,SAAU,YAAW,WAAW;IAIzC,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,MAAM,CAAe;gBAGnB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0B9D,OAAO,CAAC,sBAAsB;CAI/B;AAGD,qBACa,iBAAkB,YAAW,WAAW;IAIjD,OAAO,CAAC,UAAU;IAHnB,OAAO,CAAC,MAAM,CAAe;gBAGpB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9D,OAAO,CAAC,sBAAsB;CAI/B;AAGD,qBACa,cAAe,YAAW,WAAW;IAI9C,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,MAAM,CAAe;gBAGnB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B9D,OAAO,CAAC,sBAAsB;CAI/B"}
|
package/dist/auth/auth.guard.js
CHANGED
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.OptionalAuthGuard = exports.AuthGuard = void 0;
|
|
12
|
+
exports.AdminAuthGuard = exports.OptionalAuthGuard = exports.AuthGuard = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const jwt_1 = require("@nestjs/jwt");
|
|
15
15
|
const client_1 = require("@prisma/client");
|
|
@@ -86,4 +86,44 @@ exports.OptionalAuthGuard = OptionalAuthGuard = __decorate([
|
|
|
86
86
|
(0, common_1.Injectable)(),
|
|
87
87
|
__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
88
88
|
], OptionalAuthGuard);
|
|
89
|
+
let AdminAuthGuard = class AdminAuthGuard {
|
|
90
|
+
constructor(jwtService) {
|
|
91
|
+
this.jwtService = jwtService;
|
|
92
|
+
this.prisma = new client_1.PrismaClient();
|
|
93
|
+
}
|
|
94
|
+
async canActivate(context) {
|
|
95
|
+
const request = context.switchToHttp().getRequest();
|
|
96
|
+
const token = this.extractTokenFromHeader(request);
|
|
97
|
+
if (!token) {
|
|
98
|
+
throw new common_1.UnauthorizedException();
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const payload = (await this.jwtService.verifyAsync(token));
|
|
102
|
+
const user = await this.prisma.user.findUnique({
|
|
103
|
+
where: { id: payload.userId }
|
|
104
|
+
});
|
|
105
|
+
if (!user) {
|
|
106
|
+
throw new common_1.UnauthorizedException();
|
|
107
|
+
}
|
|
108
|
+
if (user.role !== client_1.UserRole.ADMIN && user.role !== client_1.UserRole.SUPER_ADMIN) {
|
|
109
|
+
throw new common_1.UnauthorizedException();
|
|
110
|
+
}
|
|
111
|
+
request['user'] = user;
|
|
112
|
+
}
|
|
113
|
+
catch (_a) {
|
|
114
|
+
throw new common_1.UnauthorizedException();
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
extractTokenFromHeader(request) {
|
|
119
|
+
var _a, _b;
|
|
120
|
+
const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
|
121
|
+
return type === 'Bearer' ? token : undefined;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
exports.AdminAuthGuard = AdminAuthGuard;
|
|
125
|
+
exports.AdminAuthGuard = AdminAuthGuard = __decorate([
|
|
126
|
+
(0, common_1.Injectable)(),
|
|
127
|
+
__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
128
|
+
], AdminAuthGuard);
|
|
89
129
|
//# sourceMappingURL=auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,qCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,qCAAyC;AACzC,2CAAwD;AAKjD,IAAM,SAAS,GAAf,MAAM,SAAS;IAGpB,YACU,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAExD,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC7C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,8BAAqB,EAAE,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,OAAmD;;QAChF,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,aAAa,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF,CAAA;AAvCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAKW,gBAAU;GAJrB,SAAS,CAuCrB;AAIM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAG5B,YACU,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAExD,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC7C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,8BAAqB,EAAE,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAGzB,CAAC;QAAC,WAAM,CAAC;QAET,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,OAAmD;;QAChF,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,aAAa,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF,CAAA;AAzCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAKW,gBAAU;GAJrB,iBAAiB,CAyC7B;AAIM,IAAM,cAAc,GAApB,MAAM,cAAc;IAGzB,YACU,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAExD,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC7C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,8BAAqB,EAAE,CAAC;YACpC,CAAC;YAED,IAAG,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,WAAW,EAAE,CAAC;gBACtE,MAAM,IAAI,8BAAqB,EAAE,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,OAAmD;;QAChF,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,aAAa,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF,CAAA;AA3CY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAKW,gBAAU;GAJrB,cAAc,CA2C1B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './auth/auth.guard';
|
|
|
2
2
|
export { PrismaClient, User, Account, UserRole, Event, EventAccess, EventVisibility, EventStatus, EventPrice, Address, Participant, ParticipantStatus, Provider, ProviderStatus, EventCategory, Review, } from '@prisma/client';
|
|
3
3
|
export * from './auth/auth.guard';
|
|
4
4
|
export * from './auth/auth.module';
|
|
5
|
+
export * from './auth/admin.middleware';
|
|
5
6
|
export * from './cache/cache.module';
|
|
6
7
|
export * from './cache/cache.service';
|
|
7
8
|
export * from './prisma/prisma.module';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACH,YAAY,EAAE,IAAI,EAAE,OAAO,EACvB,QAAQ,EAAE,KAAK,EAAE,WAAW,EAC5B,eAAe,EAAE,WAAW,EAC5B,UAAU,EAAE,OAAO,EAAE,WAAW,EAChC,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,GAET,MAAM,gBAAgB,CAAC;AAG5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACH,YAAY,EAAE,IAAI,EAAE,OAAO,EACvB,QAAQ,EAAE,KAAK,EAAE,WAAW,EAC5B,eAAe,EAAE,WAAW,EAC5B,UAAU,EAAE,OAAO,EAAE,WAAW,EAChC,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,GAET,MAAM,gBAAgB,CAAC;AAG5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "ParticipantStatus", { enumerable: true, get: fun
|
|
|
26
26
|
Object.defineProperty(exports, "ProviderStatus", { enumerable: true, get: function () { return client_1.ProviderStatus; } });
|
|
27
27
|
__exportStar(require("./auth/auth.guard"), exports);
|
|
28
28
|
__exportStar(require("./auth/auth.module"), exports);
|
|
29
|
+
__exportStar(require("./auth/admin.middleware"), exports);
|
|
29
30
|
__exportStar(require("./cache/cache.module"), exports);
|
|
30
31
|
__exportStar(require("./cache/cache.service"), exports);
|
|
31
32
|
__exportStar(require("./prisma/prisma.module"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yCAW4B;AAVxB,sGAAA,YAAY,OAAA;AACR,kGAAA,QAAQ,OAAA;AAAS,qGAAA,WAAW,OAAA;AAC5B,yGAAA,eAAe,OAAA;AAAE,qGAAA,WAAW,OAAA;AAE5B,2GAAA,iBAAiB,OAAA;AAEjB,wGAAA,cAAc,OAAA;AAOtB,oDAAkC;AAClC,qDAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yCAW4B;AAVxB,sGAAA,YAAY,OAAA;AACR,kGAAA,QAAQ,OAAA;AAAS,qGAAA,WAAW,OAAA;AAC5B,yGAAA,eAAe,OAAA;AAAE,qGAAA,WAAW,OAAA;AAE5B,2GAAA,iBAAiB,OAAA;AAEjB,wGAAA,cAAc,OAAA;AAOtB,oDAAkC;AAClC,qDAAmC;AACnC,0DAAwC;AAGxC,uDAAqC;AACrC,wDAAsC;AAGtC,yDAAuC;AACvC,0DAAwC;AACxC,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB;AACxB,wDAAsC;AACtC,iDAA+B;AAE/B,mCAAyC;AAAhC,iGAAA,UAAU,OAAA"}
|
package/package.json
CHANGED
package/src/auth/auth.guard.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
UnauthorizedException,
|
|
6
6
|
} from '@nestjs/common';
|
|
7
7
|
import { JwtService } from '@nestjs/jwt';
|
|
8
|
-
import { PrismaClient } from '@prisma/client';
|
|
8
|
+
import { PrismaClient, UserRole } from '@prisma/client';
|
|
9
9
|
import { Request } from 'express';
|
|
10
10
|
import { IncomingHttpHeaders } from 'http';
|
|
11
11
|
|
|
@@ -96,3 +96,51 @@ export class OptionalAuthGuard implements CanActivate {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
//admin auth guard
|
|
100
|
+
@Injectable()
|
|
101
|
+
export class AdminAuthGuard implements CanActivate {
|
|
102
|
+
private prisma: PrismaClient;
|
|
103
|
+
|
|
104
|
+
constructor(
|
|
105
|
+
private jwtService: JwtService,
|
|
106
|
+
) {
|
|
107
|
+
this.prisma = new PrismaClient();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
async canActivate(context: ExecutionContext): Promise<boolean> {
|
|
111
|
+
const request = context.switchToHttp().getRequest();
|
|
112
|
+
const token = this.extractTokenFromHeader(request);
|
|
113
|
+
if (!token) {
|
|
114
|
+
throw new UnauthorizedException();
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
const payload = (await this.jwtService.verifyAsync(token)) as {
|
|
118
|
+
userId: string;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const user = await this.prisma.user.findUnique({
|
|
122
|
+
where: { id: payload.userId }
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
if (!user) {
|
|
126
|
+
throw new UnauthorizedException();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if(user.role !== UserRole.ADMIN && user.role !== UserRole.SUPER_ADMIN) {
|
|
130
|
+
throw new UnauthorizedException();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
request['user'] = user;
|
|
134
|
+
} catch {
|
|
135
|
+
throw new UnauthorizedException();
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private extractTokenFromHeader(request: Request & { headers: IncomingHttpHeaders }): string | undefined {
|
|
141
|
+
const [type, token] = request.headers.authorization?.split(' ') ?? [];
|
|
142
|
+
return type === 'Bearer' ? token : undefined;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|