@hichchi/nest-auth 0.0.1 → 0.0.3
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/CHANGELOG.md +16 -0
- package/README.md +782 -1567
- package/auth.module.js +50 -47
- package/auth.module.js.map +1 -1
- package/constants.js +7 -4
- package/constants.js.map +1 -1
- package/controllers/auth.controller.js +148 -145
- package/controllers/auth.controller.js.map +1 -1
- package/controllers/index.js +4 -1
- package/controllers/index.js.map +1 -1
- package/decorators/auth-info.decorator.js +6 -3
- package/decorators/auth-info.decorator.js.map +1 -1
- package/decorators/current-user.decorator.js +6 -3
- package/decorators/current-user.decorator.js.map +1 -1
- package/decorators/index.js +9 -6
- package/decorators/index.js.map +1 -1
- package/decorators/permission.decorator.js +8 -4
- package/decorators/permission.decorator.js.map +1 -1
- package/decorators/roles.decorator.js +8 -4
- package/decorators/roles.decorator.js.map +1 -1
- package/decorators/socket-id.decorator.js +6 -3
- package/decorators/socket-id.decorator.js.map +1 -1
- package/decorators/subdomain.decorator.js +11 -8
- package/decorators/subdomain.decorator.js.map +1 -1
- package/dtos/email-verify.dto.js +17 -14
- package/dtos/email-verify.dto.js.map +1 -1
- package/dtos/get-auth-response.dto.js +13 -10
- package/dtos/get-auth-response.dto.js.map +1 -1
- package/dtos/index.js +14 -11
- package/dtos/index.js.map +1 -1
- package/dtos/refresh-token.dto.js +13 -10
- package/dtos/refresh-token.dto.js.map +1 -1
- package/dtos/request-reset.dto.js +12 -9
- package/dtos/request-reset.dto.js.map +1 -1
- package/dtos/resend-email-verify.dto.js +12 -9
- package/dtos/resend-email-verify.dto.js.map +1 -1
- package/dtos/reset-password-token-verify.dto.js +13 -10
- package/dtos/reset-password-token-verify.dto.js.map +1 -1
- package/dtos/reset-password.dto.js +16 -13
- package/dtos/reset-password.dto.js.map +1 -1
- package/dtos/sign-in.dto.js +21 -18
- package/dtos/sign-in.dto.js.map +1 -1
- package/dtos/sign-up.dto.js +26 -23
- package/dtos/sign-up.dto.js.map +1 -1
- package/dtos/update-password.dto.js +15 -12
- package/dtos/update-password.dto.js.map +1 -1
- package/dtos/view-user.dto.js +5 -1
- package/dtos/view-user.dto.js.map +1 -1
- package/extractors/cookie-extractor.js +6 -3
- package/extractors/cookie-extractor.js.map +1 -1
- package/extractors/index.js +4 -1
- package/extractors/index.js.map +1 -1
- package/guards/google-auth.guard.js +24 -21
- package/guards/google-auth.guard.js.map +1 -1
- package/guards/index.js +8 -5
- package/guards/index.js.map +1 -1
- package/guards/jwt-auth.guard.js +43 -40
- package/guards/jwt-auth.guard.js.map +1 -1
- package/guards/local-auth.guard.js +15 -12
- package/guards/local-auth.guard.js.map +1 -1
- package/guards/permission.guard.js +15 -12
- package/guards/permission.guard.js.map +1 -1
- package/guards/role.guard.js +15 -12
- package/guards/role.guard.js.map +1 -1
- package/index.js +18 -13
- package/index.js.map +1 -1
- package/interfaces/auth-options.interface.js +2 -1
- package/interfaces/auth-user.type.js +2 -1
- package/interfaces/cache-user.interfaces.js +2 -1
- package/interfaces/index.js +9 -6
- package/interfaces/index.js.map +1 -1
- package/interfaces/token-data.interface.js +2 -1
- package/interfaces/user-extra.interfaces.js +2 -1
- package/interfaces/user-service.interface.d.ts +1 -1
- package/interfaces/user-service.interface.js +2 -1
- package/package.json +8 -7
- package/pipes/index.js +4 -1
- package/pipes/index.js.map +1 -1
- package/pipes/override-sign-up-dto.pipe.js +16 -13
- package/pipes/override-sign-up-dto.pipe.js.map +1 -1
- package/providers/index.js +4 -1
- package/providers/index.js.map +1 -1
- package/providers/user-service.provider.js +2 -1
- package/readme-top.md +24 -24
- package/services/auth.service.js +142 -136
- package/services/auth.service.js.map +1 -1
- package/services/encryption.service.js +18 -15
- package/services/encryption.service.js.map +1 -1
- package/services/index.js +6 -3
- package/services/index.js.map +1 -1
- package/services/jwt-token.service.js +14 -11
- package/services/jwt-token.service.js.map +1 -1
- package/services/token-verify.service.js +10 -7
- package/services/token-verify.service.js.map +1 -1
- package/services/user-cache.service.js +16 -13
- package/services/user-cache.service.js.map +1 -1
- package/strategies/google.strategy.js +16 -13
- package/strategies/google.strategy.js.map +1 -1
- package/strategies/index.js +6 -3
- package/strategies/index.js.map +1 -1
- package/strategies/jwt.strategy.js +29 -26
- package/strategies/jwt.strategy.js.map +1 -1
- package/strategies/local.strategy.js +20 -17
- package/strategies/local.strategy.js.map +1 -1
- package/tokens.js +5 -2
- package/tokens.js.map +1 -1
- package/utils/config-validation.js +22 -17
- package/utils/config-validation.js.map +1 -1
- package/utils/generate-auth-user.js +7 -4
- package/utils/generate-auth-user.js.map +1 -1
- package/utils/index.js +5 -2
- package/utils/index.js.map +1 -1
package/dtos/sign-up.dto.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SignUpDto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const class_validator_1 = require("class-validator");
|
|
6
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
4
7
|
/**
|
|
5
8
|
* Data Transfer Object for user sign up.
|
|
6
9
|
* This class is used to encapsulate the required user information
|
|
@@ -43,30 +46,30 @@ let SignUpDto = class SignUpDto {
|
|
|
43
46
|
*/
|
|
44
47
|
password;
|
|
45
48
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
exports.SignUpDto = SignUpDto;
|
|
50
|
+
tslib_1.__decorate([
|
|
51
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
52
|
+
tslib_1.__metadata("design:type", String)
|
|
49
53
|
], SignUpDto.prototype, "firstName", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
IsNotEmpty(),
|
|
52
|
-
__metadata("design:type", String)
|
|
54
|
+
tslib_1.__decorate([
|
|
55
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
56
|
+
tslib_1.__metadata("design:type", String)
|
|
53
57
|
], SignUpDto.prototype, "lastName", void 0);
|
|
54
|
-
__decorate([
|
|
55
|
-
IsNotEmpty(),
|
|
56
|
-
ValidateIf(({ email }) => !email),
|
|
57
|
-
__metadata("design:type", String)
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
60
|
+
(0, class_validator_1.ValidateIf)(({ email }) => !email),
|
|
61
|
+
tslib_1.__metadata("design:type", String)
|
|
58
62
|
], SignUpDto.prototype, "username", void 0);
|
|
59
|
-
__decorate([
|
|
60
|
-
IsNotEmpty(),
|
|
61
|
-
ValidateIf(({ username }) => !username),
|
|
62
|
-
__metadata("design:type", String)
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
65
|
+
(0, class_validator_1.ValidateIf)(({ username }) => !username),
|
|
66
|
+
tslib_1.__metadata("design:type", String)
|
|
63
67
|
], SignUpDto.prototype, "email", void 0);
|
|
64
|
-
__decorate([
|
|
65
|
-
IsNotEmpty(),
|
|
66
|
-
__metadata("design:type", String)
|
|
68
|
+
tslib_1.__decorate([
|
|
69
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
70
|
+
tslib_1.__metadata("design:type", String)
|
|
67
71
|
], SignUpDto.prototype, "password", void 0);
|
|
68
|
-
SignUpDto = __decorate([
|
|
69
|
-
Dto()
|
|
72
|
+
exports.SignUpDto = SignUpDto = tslib_1.__decorate([
|
|
73
|
+
(0, nest_core_1.Dto)()
|
|
70
74
|
], SignUpDto);
|
|
71
|
-
export { SignUpDto };
|
|
72
75
|
//# sourceMappingURL=sign-up.dto.js.map
|
package/dtos/sign-up.dto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/sign-up.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sign-up.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/sign-up.dto.ts"],"names":[],"mappings":";;;;AAAA,qDAAyD;AACzD,kDAAyC;AAGzC;;;;;;GAMG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAS;IAClB;;;;OAIG;IAEH,SAAS,CAAS;IAElB;;;;OAIG;IAEH,QAAQ,CAAS;IAEjB;;;;;OAKG;IAGH,QAAQ,CAAU;IAElB;;;;;OAKG;IAGH,KAAK,CAAU;IAEf;;;;;OAKG;IAEH,QAAQ,CAAS;CACpB,CAAA;AA7CY,8BAAS;AAOlB;IADC,IAAA,4BAAU,GAAE;;4CACK;AAQlB;IADC,IAAA,4BAAU,GAAE;;2CACI;AAUjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;;2CAChB;AAUlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,EAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;;wCACzB;AASf;IADC,IAAA,4BAAU,GAAE;;2CACI;oBA5CR,SAAS;IADrB,IAAA,eAAG,GAAE;GACO,SAAS,CA6CrB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdatePasswordDto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const class_validator_1 = require("class-validator");
|
|
6
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
4
7
|
/**
|
|
5
8
|
* Data Transfer Object for updating a user's password.
|
|
6
9
|
* This class is used to encapsulate the old and new passwords
|
|
@@ -24,16 +27,16 @@ let UpdatePasswordDto = class UpdatePasswordDto {
|
|
|
24
27
|
*/
|
|
25
28
|
newPassword;
|
|
26
29
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
exports.UpdatePasswordDto = UpdatePasswordDto;
|
|
31
|
+
tslib_1.__decorate([
|
|
32
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
33
|
+
tslib_1.__metadata("design:type", String)
|
|
30
34
|
], UpdatePasswordDto.prototype, "oldPassword", void 0);
|
|
31
|
-
__decorate([
|
|
32
|
-
IsNotEmpty(),
|
|
33
|
-
__metadata("design:type", String)
|
|
35
|
+
tslib_1.__decorate([
|
|
36
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
37
|
+
tslib_1.__metadata("design:type", String)
|
|
34
38
|
], UpdatePasswordDto.prototype, "newPassword", void 0);
|
|
35
|
-
UpdatePasswordDto = __decorate([
|
|
36
|
-
Dto()
|
|
39
|
+
exports.UpdatePasswordDto = UpdatePasswordDto = tslib_1.__decorate([
|
|
40
|
+
(0, nest_core_1.Dto)()
|
|
37
41
|
], UpdatePasswordDto);
|
|
38
|
-
export { UpdatePasswordDto };
|
|
39
42
|
//# sourceMappingURL=update-password.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-password.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/update-password.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-password.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/update-password.dto.ts"],"names":[],"mappings":";;;;AAAA,qDAA6C;AAC7C,kDAAyC;AAGzC;;;;;;GAMG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B;;;;;OAKG;IAEH,WAAW,CAAS;IAEpB;;;;;OAKG;IAEH,WAAW,CAAS;CACvB,CAAA;AAlBY,8CAAiB;AAQ1B;IADC,IAAA,4BAAU,GAAE;;sDACO;AASpB;IADC,IAAA,4BAAU,GAAE;;sDACO;4BAjBX,iBAAiB;IAD7B,IAAA,eAAG,GAAE;GACO,iBAAiB,CAkB7B"}
|
package/dtos/view-user.dto.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViewUserDto = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* A Data Transfer Object (`DTO`) class used for viewing user data.
|
|
3
6
|
* This class ensures that the user data is formatted and structured for output or display purposes.
|
|
4
7
|
* Implements the {@link IViewDto} interface for standardized data formatting operations.
|
|
5
8
|
*/
|
|
6
|
-
|
|
9
|
+
class ViewUserDto {
|
|
7
10
|
/**
|
|
8
11
|
* Formats a user entity for output or display purposes.
|
|
9
12
|
*
|
|
@@ -22,4 +25,5 @@ export class ViewUserDto {
|
|
|
22
25
|
return user;
|
|
23
26
|
}
|
|
24
27
|
}
|
|
28
|
+
exports.ViewUserDto = ViewUserDto;
|
|
25
29
|
//# sourceMappingURL=view-user.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-user.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/view-user.dto.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"view-user.dto.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/dtos/view-user.dto.ts"],"names":[],"mappings":";;;AAGA;;;;GAIG;AACH,MAAa,WAAW;IACpB;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAkB;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnBD,kCAmBC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cookieExtractor = cookieExtractor;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
2
5
|
/**
|
|
3
6
|
* Extract access token from the request cookies
|
|
4
7
|
*
|
|
@@ -16,8 +19,8 @@ import { ACCESS_TOKEN_COOKIE_NAME } from "../constants";
|
|
|
16
19
|
* @see {@link JwtAuthGuard} Guard that uses this extractor for authentication
|
|
17
20
|
* @see {@link AuthMethod.COOKIE} Authentication method that uses cookies
|
|
18
21
|
*/
|
|
19
|
-
|
|
22
|
+
function cookieExtractor(request) {
|
|
20
23
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
21
|
-
return request?.signedCookies[ACCESS_TOKEN_COOKIE_NAME] || null;
|
|
24
|
+
return request?.signedCookies[constants_1.ACCESS_TOKEN_COOKIE_NAME] || null;
|
|
22
25
|
}
|
|
23
26
|
//# sourceMappingURL=cookie-extractor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-extractor.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/extractors/cookie-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookie-extractor.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/extractors/cookie-extractor.ts"],"names":[],"mappings":";;AAqBA,0CAGC;AAtBD,4CAAwD;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,eAAe,CAAC,OAAgB;IAC5C,sEAAsE;IACtE,OAAQ,OAAO,EAAE,aAAa,CAAC,oCAAwB,CAAiB,IAAI,IAAI,CAAC;AACrF,CAAC"}
|
package/extractors/index.js
CHANGED
package/extractors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/extractors/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/extractors/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.GoogleAuthGuard = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const passport_1 = require("@nestjs/passport");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const tokens_1 = require("../tokens");
|
|
9
|
+
const passport = tslib_1.__importStar(require("passport"));
|
|
10
|
+
const auth_1 = require("@hichchi/nest-connector/auth");
|
|
11
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
12
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
10
13
|
/**
|
|
11
14
|
* Guard for Google OAuth authentication.
|
|
12
15
|
*
|
|
@@ -31,7 +34,7 @@ import { LoggerService } from "@hichchi/nest-core";
|
|
|
31
34
|
* }
|
|
32
35
|
* ```
|
|
33
36
|
*/
|
|
34
|
-
let GoogleAuthGuard = class GoogleAuthGuard extends AuthGuard(AuthStrategy.GOOGLE) {
|
|
37
|
+
let GoogleAuthGuard = class GoogleAuthGuard extends (0, passport_1.AuthGuard)(auth_1.AuthStrategy.GOOGLE) {
|
|
35
38
|
options;
|
|
36
39
|
/**
|
|
37
40
|
* Creates an instance of GoogleAuthGuard.
|
|
@@ -60,28 +63,28 @@ let GoogleAuthGuard = class GoogleAuthGuard extends AuthGuard(AuthStrategy.GOOGL
|
|
|
60
63
|
if (!this.options.googleAuth?.clientId ||
|
|
61
64
|
!this.options.googleAuth?.clientSecret ||
|
|
62
65
|
!this.options.googleAuth?.callbackUrl) {
|
|
63
|
-
throw new InternalServerErrorException(Errors.ERROR_404_NOT_IMPLEMENTED);
|
|
66
|
+
throw new common_1.InternalServerErrorException(nest_connector_1.Errors.ERROR_404_NOT_IMPLEMENTED);
|
|
64
67
|
}
|
|
65
68
|
const request = context.switchToHttp().getRequest();
|
|
66
69
|
const response = context.switchToHttp().getResponse();
|
|
67
70
|
const { state, redirectUrl } = request.query;
|
|
68
71
|
if (!state && !redirectUrl) {
|
|
69
|
-
throw new BadRequestException(AuthErrors.AUTH_400_REDIRECT_URL_REQUIRED);
|
|
72
|
+
throw new common_1.BadRequestException(auth_1.AuthErrors.AUTH_400_REDIRECT_URL_REQUIRED);
|
|
70
73
|
}
|
|
71
74
|
const options = { session: false, state: JSON.stringify({ redirectUrl }) };
|
|
72
75
|
return new Promise((resolve, reject) => {
|
|
73
76
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
74
|
-
passport.authenticate(AuthStrategy.GOOGLE, options,
|
|
77
|
+
passport.authenticate(auth_1.AuthStrategy.GOOGLE, options,
|
|
75
78
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
79
|
(error, authUser, _info) => {
|
|
77
80
|
if (error) {
|
|
78
|
-
LoggerService.error(error, this.constructor.name);
|
|
79
|
-
reject(new UnauthorizedException(AuthErrors.AUTH_500_SOCIAL_SIGN_IN));
|
|
81
|
+
nest_core_1.LoggerService.error(error, this.constructor.name);
|
|
82
|
+
reject(new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_500_SOCIAL_SIGN_IN));
|
|
80
83
|
return;
|
|
81
84
|
}
|
|
82
|
-
const isCallback = request.url.includes(AuthEndpoint.GOOGLE_CALLBACK);
|
|
85
|
+
const isCallback = request.url.includes(auth_1.AuthEndpoint.GOOGLE_CALLBACK);
|
|
83
86
|
if (!authUser && isCallback) {
|
|
84
|
-
return reject(new UnauthorizedException(AuthErrors.AUTH_500_SOCIAL_SIGN_IN));
|
|
87
|
+
return reject(new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_500_SOCIAL_SIGN_IN));
|
|
85
88
|
}
|
|
86
89
|
if (authUser) {
|
|
87
90
|
request.authInfo = authUser;
|
|
@@ -91,10 +94,10 @@ let GoogleAuthGuard = class GoogleAuthGuard extends AuthGuard(AuthStrategy.GOOGL
|
|
|
91
94
|
});
|
|
92
95
|
}
|
|
93
96
|
};
|
|
94
|
-
GoogleAuthGuard =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
exports.GoogleAuthGuard = GoogleAuthGuard;
|
|
98
|
+
exports.GoogleAuthGuard = GoogleAuthGuard = tslib_1.__decorate([
|
|
99
|
+
(0, common_1.Injectable)(),
|
|
100
|
+
tslib_1.__param(0, (0, common_1.Inject)(tokens_1.AUTH_OPTIONS)),
|
|
101
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
98
102
|
], GoogleAuthGuard);
|
|
99
|
-
export { GoogleAuthGuard };
|
|
100
103
|
//# sourceMappingURL=google-auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/google-auth.guard.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"google-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/google-auth.guard.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,+CAA6C;AAC7C,2CAOwB;AAGxB,sCAAyC;AACzC,2DAAqC;AACrC,uDAAsF;AACtF,4DAAiD;AAEjD,kDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,IAAA,oBAAS,EAAC,mBAAY,CAAC,MAAM,CAAC;IAMpB;IAL3C;;;;OAIG;IACH,YAA2C,OAAoB;QAC3D,KAAK,EAAE,CAAC;QAD+B,YAAO,GAAP,OAAO,CAAa;IAE/D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACM,WAAW,CAAC,OAAyB;QAC1C,IACI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ;YAClC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY;YACtC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EACvC,CAAC;YACC,MAAM,IAAI,qCAA4B,CAAC,uBAAM,CAAC,yBAAyB,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAY,CAAC;QAChE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAE7C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAmB,CAAC,iBAAU,CAAC,8BAA8B,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAE3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,6DAA6D;YAC7D,QAAQ,CAAC,YAAY,CACjB,mBAAY,CAAC,MAAM,EACnB,OAAO;YACP,6DAA6D;YAC7D,CAAC,KAAc,EAAE,QAAkB,EAAE,KAAc,EAAQ,EAAE;gBACzD,IAAI,KAAK,EAAE,CAAC;oBACR,yBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,CAAC,IAAI,8BAAqB,CAAC,iBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;oBACtE,OAAO;gBACX,CAAC;gBAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAY,CAAC,eAAe,CAAC,CAAC;gBAEtE,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;oBAC1B,OAAO,MAAM,CAAC,IAAI,8BAAqB,CAAC,iBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACjF,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAChC,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CACJ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAvEY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAOI,mBAAA,IAAA,eAAM,EAAC,qBAAY,CAAC,CAAA;;GANxB,eAAe,CAuE3B"}
|
package/guards/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./local-auth.guard"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./jwt-auth.guard"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./google-auth.guard"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./permission.guard"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./role.guard"), exports);
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
package/guards/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,2DAAiC;AACjC,8DAAoC;AACpC,6DAAmC;AACnC,uDAA6B"}
|
package/guards/jwt-auth.guard.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols,JSUnusedLocalSymbols,ExceptionCaughtLocallyJS
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.JwtAuthGuard = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const passport_1 = require("@nestjs/passport");
|
|
8
|
+
const passport_jwt_1 = require("passport-jwt");
|
|
9
|
+
const tokens_1 = require("../tokens");
|
|
10
|
+
const services_1 = require("../services");
|
|
11
|
+
const extractors_1 = require("../extractors");
|
|
12
|
+
const uuid_1 = require("uuid");
|
|
13
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
14
|
+
const auth_1 = require("@hichchi/nest-connector/auth");
|
|
15
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
16
|
+
const constants_1 = require("../constants");
|
|
14
17
|
/**
|
|
15
18
|
* Guard for JWT authentication.
|
|
16
19
|
*
|
|
@@ -31,7 +34,7 @@ import { ACCESS_TOKEN_COOKIE_NAME, REFRESH_TOKEN_COOKIE_NAME } from "../constant
|
|
|
31
34
|
* }
|
|
32
35
|
* ```
|
|
33
36
|
*/
|
|
34
|
-
let JwtAuthGuard = class JwtAuthGuard extends AuthGuard(AuthStrategy.JWT) {
|
|
37
|
+
let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)(auth_1.AuthStrategy.JWT) {
|
|
35
38
|
options;
|
|
36
39
|
authService;
|
|
37
40
|
cacheService;
|
|
@@ -64,21 +67,21 @@ let JwtAuthGuard = class JwtAuthGuard extends AuthGuard(AuthStrategy.JWT) {
|
|
|
64
67
|
const request = context.switchToHttp().getRequest();
|
|
65
68
|
const response = context.switchToHttp().getResponse();
|
|
66
69
|
try {
|
|
67
|
-
const accessToken = this.options.authMethod === AuthMethod.COOKIE
|
|
68
|
-
? ExtractJwt.fromExtractors([cookieExtractor])(request)
|
|
69
|
-
: ExtractJwt.fromAuthHeaderAsBearerToken()(request);
|
|
70
|
+
const accessToken = this.options.authMethod === auth_1.AuthMethod.COOKIE
|
|
71
|
+
? passport_jwt_1.ExtractJwt.fromExtractors([extractors_1.cookieExtractor])(request)
|
|
72
|
+
: passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken()(request);
|
|
70
73
|
if (accessToken) {
|
|
71
74
|
return await this.activate(context);
|
|
72
75
|
}
|
|
73
|
-
if (this.options.authMethod === AuthMethod.COOKIE && this.options.cookies) {
|
|
76
|
+
if (this.options.authMethod === auth_1.AuthMethod.COOKIE && this.options.cookies) {
|
|
74
77
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
75
|
-
const refreshToken = request.signedCookies[REFRESH_TOKEN_COOKIE_NAME];
|
|
78
|
+
const refreshToken = request.signedCookies[constants_1.REFRESH_TOKEN_COOKIE_NAME];
|
|
76
79
|
if (!refreshToken) {
|
|
77
|
-
throw new UnauthorizedException(AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
80
|
+
throw new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
78
81
|
}
|
|
79
82
|
const user = await this.authService.getUserByToken(request, refreshToken, true);
|
|
80
83
|
if (!user) {
|
|
81
|
-
throw new UnauthorizedException(AuthErrors.AUTH_401_INVALID_REFRESH_TOKEN);
|
|
84
|
+
throw new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_INVALID_REFRESH_TOKEN);
|
|
82
85
|
}
|
|
83
86
|
const tokens = this.authService.generateTokens(user);
|
|
84
87
|
const cacheUser = (await this.cacheService.getUser(user.id)) ?? {
|
|
@@ -87,22 +90,22 @@ let JwtAuthGuard = class JwtAuthGuard extends AuthGuard(AuthStrategy.JWT) {
|
|
|
87
90
|
};
|
|
88
91
|
cacheUser.sessions = cacheUser.sessions.filter(session => session.refreshToken !== refreshToken);
|
|
89
92
|
cacheUser.sessions.push({
|
|
90
|
-
sessionId:
|
|
93
|
+
sessionId: (0, uuid_1.v4)(),
|
|
91
94
|
accessToken: tokens.accessToken,
|
|
92
95
|
refreshToken: tokens.refreshToken,
|
|
93
96
|
});
|
|
94
97
|
await this.cacheService.setUser(cacheUser);
|
|
95
98
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
96
|
-
request.signedCookies[ACCESS_TOKEN_COOKIE_NAME] = tokens.accessToken;
|
|
97
|
-
response.cookie(ACCESS_TOKEN_COOKIE_NAME, tokens.accessToken, {
|
|
98
|
-
maxAge: Number(this.options.jwt.expiresIn) * SECOND_IN_MS,
|
|
99
|
+
request.signedCookies[constants_1.ACCESS_TOKEN_COOKIE_NAME] = tokens.accessToken;
|
|
100
|
+
response.cookie(constants_1.ACCESS_TOKEN_COOKIE_NAME, tokens.accessToken, {
|
|
101
|
+
maxAge: Number(this.options.jwt.expiresIn) * nest_connector_1.SECOND_IN_MS,
|
|
99
102
|
httpOnly: false,
|
|
100
103
|
sameSite: this.options.cookies.sameSite,
|
|
101
104
|
secure: this.options.cookies.secure,
|
|
102
105
|
signed: true,
|
|
103
106
|
});
|
|
104
|
-
response.cookie(REFRESH_TOKEN_COOKIE_NAME, tokens.refreshToken, {
|
|
105
|
-
maxAge: Number(this.options.jwt.refreshExpiresIn) * SECOND_IN_MS,
|
|
107
|
+
response.cookie(constants_1.REFRESH_TOKEN_COOKIE_NAME, tokens.refreshToken, {
|
|
108
|
+
maxAge: Number(this.options.jwt.refreshExpiresIn) * nest_connector_1.SECOND_IN_MS,
|
|
106
109
|
httpOnly: false,
|
|
107
110
|
sameSite: this.options.cookies.sameSite,
|
|
108
111
|
secure: this.options.cookies.secure,
|
|
@@ -110,18 +113,18 @@ let JwtAuthGuard = class JwtAuthGuard extends AuthGuard(AuthStrategy.JWT) {
|
|
|
110
113
|
});
|
|
111
114
|
return await this.activate(context);
|
|
112
115
|
}
|
|
113
|
-
throw new UnauthorizedException(AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
116
|
+
throw new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
114
117
|
}
|
|
115
118
|
catch (error) {
|
|
116
|
-
if (this.options.authMethod === AuthMethod.COOKIE) {
|
|
117
|
-
response.clearCookie(ACCESS_TOKEN_COOKIE_NAME);
|
|
118
|
-
response.clearCookie(REFRESH_TOKEN_COOKIE_NAME);
|
|
119
|
+
if (this.options.authMethod === auth_1.AuthMethod.COOKIE) {
|
|
120
|
+
response.clearCookie(constants_1.ACCESS_TOKEN_COOKIE_NAME);
|
|
121
|
+
response.clearCookie(constants_1.REFRESH_TOKEN_COOKIE_NAME);
|
|
119
122
|
}
|
|
120
|
-
if (error instanceof UnauthorizedException) {
|
|
123
|
+
if (error instanceof common_1.UnauthorizedException) {
|
|
121
124
|
throw error;
|
|
122
125
|
}
|
|
123
|
-
LoggerService.error(error, this.constructor.name);
|
|
124
|
-
throw new UnauthorizedException(AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
126
|
+
nest_core_1.LoggerService.error(error, this.constructor.name);
|
|
127
|
+
throw new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_NOT_LOGGED_IN);
|
|
125
128
|
}
|
|
126
129
|
}
|
|
127
130
|
/**
|
|
@@ -154,17 +157,17 @@ let JwtAuthGuard = class JwtAuthGuard extends AuthGuard(AuthStrategy.JWT) {
|
|
|
154
157
|
handleRequest(error, user, _info) {
|
|
155
158
|
// You can throw an exception based on either "info" or "error" arguments
|
|
156
159
|
if (error || !user) {
|
|
157
|
-
throw error || new UnauthorizedException(AuthErrors.AUTH_401_INVALID_TOKEN);
|
|
160
|
+
throw error || new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_INVALID_TOKEN);
|
|
158
161
|
}
|
|
159
162
|
user.password = null;
|
|
160
163
|
return user;
|
|
161
164
|
}
|
|
162
165
|
};
|
|
163
|
-
JwtAuthGuard =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
exports.JwtAuthGuard = JwtAuthGuard;
|
|
167
|
+
exports.JwtAuthGuard = JwtAuthGuard = tslib_1.__decorate([
|
|
168
|
+
(0, common_1.Injectable)(),
|
|
169
|
+
tslib_1.__param(0, (0, common_1.Inject)(tokens_1.AUTH_OPTIONS)),
|
|
170
|
+
tslib_1.__metadata("design:paramtypes", [Object, services_1.AuthService,
|
|
171
|
+
services_1.UserCacheService])
|
|
168
172
|
], JwtAuthGuard);
|
|
169
|
-
export { JwtAuthGuard };
|
|
170
173
|
//# sourceMappingURL=jwt-auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/jwt-auth.guard.ts"],"names":[],"mappings":"AAAA,mFAAmF
|
|
1
|
+
{"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/jwt-auth.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LocalAuthGuard = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const passport_1 = require("@nestjs/passport");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const auth_1 = require("@hichchi/nest-connector/auth");
|
|
9
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
7
10
|
/**
|
|
8
11
|
* Guard for local authentication (username/password).
|
|
9
12
|
*
|
|
@@ -21,7 +24,7 @@ import { LoggerService } from "@hichchi/nest-core";
|
|
|
21
24
|
* }
|
|
22
25
|
* ```
|
|
23
26
|
*/
|
|
24
|
-
let LocalAuthGuard = class LocalAuthGuard extends AuthGuard(AuthStrategy.LOCAL) {
|
|
27
|
+
let LocalAuthGuard = class LocalAuthGuard extends (0, passport_1.AuthGuard)(auth_1.AuthStrategy.LOCAL) {
|
|
25
28
|
/**
|
|
26
29
|
* Determines if the current request is allowed to proceed.
|
|
27
30
|
*
|
|
@@ -36,7 +39,7 @@ let LocalAuthGuard = class LocalAuthGuard extends AuthGuard(AuthStrategy.LOCAL)
|
|
|
36
39
|
canActivate(context) {
|
|
37
40
|
const { body: { email, username, password }, } = context.switchToHttp().getRequest();
|
|
38
41
|
if ((!email && !username) || !password) {
|
|
39
|
-
throw new UnauthorizedException(AuthErrors.AUTH_401_INVALID_USERNAME_PASSWORD);
|
|
42
|
+
throw new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_401_INVALID_USERNAME_PASSWORD);
|
|
40
43
|
}
|
|
41
44
|
return super.canActivate(context);
|
|
42
45
|
}
|
|
@@ -59,15 +62,15 @@ let LocalAuthGuard = class LocalAuthGuard extends AuthGuard(AuthStrategy.LOCAL)
|
|
|
59
62
|
// You can throw an exception based on either "info" or "error" arguments
|
|
60
63
|
if (error || !user) {
|
|
61
64
|
if (error)
|
|
62
|
-
LoggerService.error(error, this.constructor.name);
|
|
63
|
-
throw error || new UnauthorizedException(AuthErrors.AUTH_500_SIGN_IN);
|
|
65
|
+
nest_core_1.LoggerService.error(error, this.constructor.name);
|
|
66
|
+
throw error || new common_1.UnauthorizedException(auth_1.AuthErrors.AUTH_500_SIGN_IN);
|
|
64
67
|
}
|
|
65
68
|
user.password = null;
|
|
66
69
|
return user;
|
|
67
70
|
}
|
|
68
71
|
};
|
|
69
|
-
LocalAuthGuard =
|
|
70
|
-
|
|
72
|
+
exports.LocalAuthGuard = LocalAuthGuard;
|
|
73
|
+
exports.LocalAuthGuard = LocalAuthGuard = tslib_1.__decorate([
|
|
74
|
+
(0, common_1.Injectable)()
|
|
71
75
|
], LocalAuthGuard);
|
|
72
|
-
export { LocalAuthGuard };
|
|
73
76
|
//# sourceMappingURL=local-auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/local-auth.guard.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"local-auth.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/local-auth.guard.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,+CAA6C;AAC7C,2CAAqF;AAErF,uDAA8E;AAC9E,kDAAmD;AAEnD;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAA,oBAAS,EAAC,mBAAY,CAAC,KAAK,CAAC;IAC7D;;;;;;;;;;OAUG;IACM,WAAW,CAAC,OAAyB;QAC1C,MAAM,EACF,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACtC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,8BAAqB,CAAC,iBAAU,CAAC,kCAAkC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,gGAAgG;IACvF,aAAa,CAAC,KAAc,EAAE,IAAU,EAAE,KAAc;QAC7D,yEAAyE;QACzE,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,KAAK;gBAAE,yBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,KAAK,IAAI,IAAI,8BAAqB,CAAC,iBAAU,CAAC,gBAAgB,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AA9CY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CA8C1B"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PermissionGuard = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const core_1 = require("@nestjs/core");
|
|
8
|
+
const auth_1 = require("@hichchi/nest-connector/auth");
|
|
9
|
+
const decorators_1 = require("../decorators");
|
|
7
10
|
/**
|
|
8
11
|
* Guard for permission-based authorization.
|
|
9
12
|
*
|
|
@@ -45,7 +48,7 @@ let PermissionGuard = class PermissionGuard {
|
|
|
45
48
|
* @throws {ForbiddenException} If the user doesn't have the required permission
|
|
46
49
|
*/
|
|
47
50
|
canActivate(context) {
|
|
48
|
-
const requiredPermission = this.reflector.getAllAndOverride(PERMISSION_KEY, [
|
|
51
|
+
const requiredPermission = this.reflector.getAllAndOverride(decorators_1.PERMISSION_KEY, [
|
|
49
52
|
context.getHandler(),
|
|
50
53
|
context.getClass(),
|
|
51
54
|
]);
|
|
@@ -53,15 +56,15 @@ let PermissionGuard = class PermissionGuard {
|
|
|
53
56
|
return true;
|
|
54
57
|
}
|
|
55
58
|
const { user } = context.switchToHttp().getRequest();
|
|
56
|
-
if (isRoleObject(user.role) && user.role.permissions?.includes(requiredPermission)) {
|
|
59
|
+
if ((0, auth_1.isRoleObject)(user.role) && user.role.permissions?.includes(requiredPermission)) {
|
|
57
60
|
return true;
|
|
58
61
|
}
|
|
59
|
-
throw new ForbiddenException(AuthErrors.AUTH_403_PERMISSION_FORBIDDEN);
|
|
62
|
+
throw new common_1.ForbiddenException(auth_1.AuthErrors.AUTH_403_PERMISSION_FORBIDDEN);
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
|
-
PermissionGuard =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
exports.PermissionGuard = PermissionGuard;
|
|
66
|
+
exports.PermissionGuard = PermissionGuard = tslib_1.__decorate([
|
|
67
|
+
(0, common_1.Injectable)(),
|
|
68
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Reflector])
|
|
65
69
|
], PermissionGuard);
|
|
66
|
-
export { PermissionGuard };
|
|
67
70
|
//# sourceMappingURL=permission.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/permission.guard.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/permission.guard.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,2CAA+F;AAC/F,uCAAyC;AACzC,uDAA8E;AAC9E,8CAA+C;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAMJ;IALpB;;;;OAIG;IACH,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,WAAW,CAA4B,OAAyB;QAC5D,MAAM,kBAAkB,GAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAI,2BAAc,EAAE;YAC9E,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAA4B,CAAC;QAC/E,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,2BAAkB,CAAC,iBAAU,CAAC,6BAA6B,CAAC,CAAC;IAC3E,CAAC;CACJ,CAAA;AAlCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;6CAOsB,gBAAS;GAN/B,eAAe,CAkC3B"}
|