@lenne.tech/nest-server 11.5.0 → 11.6.0
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/core/common/decorators/graphql-populate.decorator.d.ts +2 -2
- package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -5
- package/dist/core/modules/auth/services/core-auth.service.js +20 -12
- package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +29 -36
- package/src/core/modules/auth/services/core-auth.service.ts +43 -19
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const GraphQLPopulate: (...dataOrPipes: (import("@nestjs/common").PipeTransform<any, any> |
|
|
1
|
+
export declare const GraphQLPopulate: (...dataOrPipes: (import("@nestjs/common").PipeTransform<any, any> | {
|
|
2
2
|
gqlPath?: string;
|
|
3
3
|
ignoreSelections?: boolean;
|
|
4
|
-
})[]) => ParameterDecorator;
|
|
4
|
+
} | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
|
|
@@ -7,6 +7,14 @@ import { CoreAuthSignUpInput } from '../inputs/core-auth-sign-up.input';
|
|
|
7
7
|
import { ICoreAuthUser } from '../interfaces/core-auth-user.interface';
|
|
8
8
|
import { JwtPayload } from '../interfaces/jwt-payload.interface';
|
|
9
9
|
import { CoreAuthUserService } from './core-auth-user.service';
|
|
10
|
+
export interface GetResultOptions {
|
|
11
|
+
currentRefreshToken?: string;
|
|
12
|
+
data?: {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
deviceId?: string;
|
|
15
|
+
};
|
|
16
|
+
serviceOptions?: ServiceOptions;
|
|
17
|
+
}
|
|
10
18
|
export declare class CoreAuthService {
|
|
11
19
|
protected readonly userService: CoreAuthUserService;
|
|
12
20
|
protected readonly jwtService: JwtService;
|
|
@@ -16,14 +24,11 @@ export declare class CoreAuthService {
|
|
|
16
24
|
logout(tokenOrRefreshToken: string, serviceOptions: ServiceOptions & {
|
|
17
25
|
allDevices?: boolean;
|
|
18
26
|
}): Promise<boolean>;
|
|
19
|
-
refreshTokens(user: ICoreAuthUser, currentRefreshToken: string): Promise<CoreAuthModel>;
|
|
27
|
+
refreshTokens(user: ICoreAuthUser, currentRefreshToken: string, serviceOptions?: ServiceOptions): Promise<CoreAuthModel>;
|
|
20
28
|
signIn(input: CoreAuthSignInInput, serviceOptions?: ServiceOptions): Promise<CoreAuthModel>;
|
|
21
29
|
signUp(input: CoreAuthSignUpInput, serviceOptions?: ServiceOptions): Promise<CoreAuthModel>;
|
|
22
30
|
validateUser(payload: JwtPayload): Promise<any>;
|
|
23
|
-
protected getResult(user: ICoreAuthUser,
|
|
24
|
-
[key: string]: any;
|
|
25
|
-
deviceId?: string;
|
|
26
|
-
}, currentRefreshToken?: string): Promise<CoreAuthModel>;
|
|
31
|
+
protected getResult(user: ICoreAuthUser, options?: GetResultOptions): Promise<CoreAuthModel>;
|
|
27
32
|
protected getSecretFromConfig(refresh?: boolean): any;
|
|
28
33
|
protected createTokens(userId: string, data?: {
|
|
29
34
|
[key: string]: any;
|
|
@@ -47,13 +47,14 @@ let CoreAuthService = class CoreAuthService {
|
|
|
47
47
|
await this.userService.update(user.id, { refreshTokens: user.refreshTokens }, serviceOptions);
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
|
-
async refreshTokens(user, currentRefreshToken) {
|
|
50
|
+
async refreshTokens(user, currentRefreshToken, serviceOptions) {
|
|
51
51
|
const { deviceDescription, deviceId } = this.decodeJwt(currentRefreshToken);
|
|
52
52
|
const tokens = await this.createTokens(user.id, { deviceDescription, deviceId });
|
|
53
53
|
tokens.refreshToken = await this.updateRefreshToken(user, currentRefreshToken, tokens.refreshToken);
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
return this.getResult(user, {
|
|
55
|
+
currentRefreshToken,
|
|
56
|
+
data: { deviceDescription, deviceId },
|
|
57
|
+
serviceOptions: { ...serviceOptions, currentUser: user },
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
async signIn(input, serviceOptions) {
|
|
@@ -72,7 +73,10 @@ let CoreAuthService = class CoreAuthService {
|
|
|
72
73
|
if (!((await bcrypt.compare(password, user.password)) || (await bcrypt.compare((0, js_sha256_1.sha256)(password), user.password)))) {
|
|
73
74
|
throw new common_1.UnauthorizedException('Wrong password');
|
|
74
75
|
}
|
|
75
|
-
return this.getResult(user, {
|
|
76
|
+
return this.getResult(user, {
|
|
77
|
+
data: { deviceDescription, deviceId },
|
|
78
|
+
serviceOptions: { ...serviceOptions, currentUser: user },
|
|
79
|
+
});
|
|
76
80
|
}
|
|
77
81
|
async signUp(input, serviceOptions) {
|
|
78
82
|
const serviceOptionsForUserService = (0, service_helper_1.prepareServiceOptions)(serviceOptions, {
|
|
@@ -84,7 +88,10 @@ let CoreAuthService = class CoreAuthService {
|
|
|
84
88
|
throw new common_1.BadRequestException('Email address already in use');
|
|
85
89
|
}
|
|
86
90
|
const { deviceDescription, deviceId } = input;
|
|
87
|
-
return this.getResult(user, {
|
|
91
|
+
return this.getResult(user, {
|
|
92
|
+
data: { deviceDescription, deviceId },
|
|
93
|
+
serviceOptions: { ...serviceOptions, currentUser: user },
|
|
94
|
+
});
|
|
88
95
|
}
|
|
89
96
|
catch (err) {
|
|
90
97
|
if (err?.message === 'Unprocessable Entity') {
|
|
@@ -101,12 +108,13 @@ let CoreAuthService = class CoreAuthService {
|
|
|
101
108
|
}
|
|
102
109
|
return user;
|
|
103
110
|
}
|
|
104
|
-
async getResult(user,
|
|
111
|
+
async getResult(user, options) {
|
|
112
|
+
const { currentRefreshToken, data, serviceOptions } = options || {};
|
|
105
113
|
const tokens = await this.createTokens(user.id, data);
|
|
106
114
|
tokens.refreshToken = await this.updateRefreshToken(user, currentRefreshToken, tokens.refreshToken, data);
|
|
107
115
|
return core_auth_model_1.CoreAuthModel.map({
|
|
108
116
|
...tokens,
|
|
109
|
-
user: await this.userService.prepareOutput(user),
|
|
117
|
+
user: await this.userService.prepareOutput(user, serviceOptions),
|
|
110
118
|
});
|
|
111
119
|
}
|
|
112
120
|
getSecretFromConfig(refresh) {
|
|
@@ -114,10 +122,10 @@ let CoreAuthService = class CoreAuthService {
|
|
|
114
122
|
if (refresh) {
|
|
115
123
|
path += '.refresh';
|
|
116
124
|
}
|
|
117
|
-
return (this.configService.getFastButReadOnly(`${path}.signInOptions.secret`)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
return (this.configService.getFastButReadOnly(`${path}.signInOptions.secret`) ||
|
|
126
|
+
this.configService.getFastButReadOnly(`${path}.signInOptions.secretOrPrivateKey`) ||
|
|
127
|
+
this.configService.getFastButReadOnly(`${path}.secret`) ||
|
|
128
|
+
this.configService.getFastButReadOnly(`${path}.secretOrPrivateKey`));
|
|
121
129
|
}
|
|
122
130
|
async createTokens(userId, data) {
|
|
123
131
|
const sameTokenIdPeriod = this.configService.getFastButReadOnly('jwt.sameTokenIdPeriod', 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwF;AACxF,qCAAyC;AACzC,iCAAkC;AAClC,mCAAoC;AACpC,yCAAmC;AAEnC,iEAAiE;AACjE,2EAA+E;AAE/E,4EAAwE;AACxE,wDAAmD;AAKnD,qEAA+D;
|
|
1
|
+
{"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":"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"}
|