@tstdl/base 0.82.9 → 0.82.11
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/authentication/authentication.api.d.ts +4 -3
- package/authentication/authentication.api.js.map +1 -1
- package/authentication/client/api.client.d.ts +6 -50
- package/authentication/client/api.client.js +18 -11
- package/authentication/client/api.client.js.map +1 -1
- package/authentication/server/authentication-token-payload.provider.d.ts +3 -2
- package/authentication/server/authentication-token-payload.provider.js.map +1 -1
- package/authentication/server/authentication.api-controller.d.ts +2 -1
- package/authentication/server/authentication.api-controller.js.map +1 -1
- package/authentication/server/authentication.service.d.ts +3 -3
- package/authentication/server/authentication.service.js +8 -8
- package/authentication/server/authentication.service.js.map +1 -1
- package/authentication/server/module.d.ts +1 -1
- package/examples/api/custom-authentication.js +4 -7
- package/examples/api/custom-authentication.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { ApiDefinition } from "../api/types";
|
|
2
2
|
import type { SchemaTestable } from "../schema/schema";
|
|
3
3
|
import type { ObjectSchemaOrType } from "../schema/types";
|
|
4
|
+
import type { Record } from "../types";
|
|
4
5
|
import { TokenPayloadBase } from './models';
|
|
5
|
-
type GetAuthenticationApiEndpointsDefinition<AdditionalTokenPayload =
|
|
6
|
-
type AuthenticationApiEndpointsDefinition<AdditionalTokenPayload =
|
|
7
|
-
export type AuthenticationApiDefinition<AdditionalTokenPayload =
|
|
6
|
+
type GetAuthenticationApiEndpointsDefinition<AdditionalTokenPayload = Record<never>, AuthenticationData = void> = typeof getAuthenticationApiEndpointsDefinition<AdditionalTokenPayload, AuthenticationData>;
|
|
7
|
+
type AuthenticationApiEndpointsDefinition<AdditionalTokenPayload = Record<never>, AuthenticationData = void> = ReturnType<GetAuthenticationApiEndpointsDefinition<AdditionalTokenPayload, AuthenticationData>>;
|
|
8
|
+
export type AuthenticationApiDefinition<AdditionalTokenPayload = Record<never>, AuthenticationData = void> = ApiDefinition<string, AuthenticationApiEndpointsDefinition<AdditionalTokenPayload, AuthenticationData>>;
|
|
8
9
|
export declare const authenticationApiDefinition: {
|
|
9
10
|
resource: string;
|
|
10
11
|
endpoints: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.api.js","sourceRoot":"","sources":["../../source/authentication/authentication.api.ts"],"names":[],"mappings":";;;AACA,wCAAwC;AAExC,qDAAiD;AACjD,uDAAmD;AACnD,qDAAiD;AACjD,qDAA4E;AAC5E,qDAAiD;AACjD,uDAAmD;
|
|
1
|
+
{"version":3,"file":"authentication.api.js","sourceRoot":"","sources":["../../source/authentication/authentication.api.ts"],"names":[],"mappings":";;;AACA,wCAAwC;AAExC,qDAAiD;AACjD,uDAAmD;AACnD,qDAAiD;AACjD,qDAA4E;AAC5E,qDAAiD;AACjD,uDAAmD;AAGnD,qCAA4C;AAU/B,QAAA,2BAA2B,GAAG,8BAA8B,CAAC,0BAAiB,EAAE,IAAA,iBAAO,GAAE,CAAC,CAAC;AAExG,4EAA4E;AAC5E,SAAgB,8BAA8B,CAC5C,4BAAwE,EACxE,wBAA4D,EAC5D,QAAiB,EACjB,mBAAyC;IAEzC,OAAO,IAAA,iBAAS,EAAC;QACf,QAAQ,EAAE,QAAQ,IAAI,MAAM;QAC5B,SAAS,EAAE;YACT,GAAG,uCAAuC,CAAC,4BAA4B,EAAE,wBAAwB,CAAC;YAClG,GAAG,mBAAmB;SACvB;KACF,CAAC,CAAC;AACL,CAAC;AAbD,wEAaC;AAED,4EAA4E;AAC5E,SAAgB,uCAAuC,CACrD,4BAAwE,EACxE,wBAA4D;IAE5D,MAAM,iBAAiB,GAAG,IAAA,eAAM,EAAC,yBAAgB,EAAE,4BAA4B,CAAC,CAAC;IAEjF,OAAO;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAA,uBAAc,EAAC;gBACzB,OAAO,EAAE,IAAA,eAAM,GAAE;gBACjB,MAAM,EAAE,IAAA,eAAM,GAAE;gBAChB,IAAI,EAAE,wBAAwB;aAC/B,CAAC;YACF,MAAM,EAAE,iBAAiB;SAC1B;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAA,uBAAc,EAAC;gBACzB,IAAI,EAAE,wBAAwB;aAC/B,CAAC;YACF,MAAM,EAAE,iBAAiB;SAC1B;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAA,iBAAO,EAAC,IAAa,CAAC;SAC/B;QACD,SAAS,EAAE;YACT,MAAM,EAAE,IAAA,eAAM,GAAE;SACjB;KAC+B,CAAC;AACrC,CAAC;AAlCD,0FAkCC"}
|
|
@@ -1,50 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
method: "POST";
|
|
8
|
-
parameters: import("../../schema").ObjectSchema<{
|
|
9
|
-
subject: string;
|
|
10
|
-
secret: string;
|
|
11
|
-
data: unknown;
|
|
12
|
-
}>;
|
|
13
|
-
result: import("../../schema").ObjectSchema<{
|
|
14
|
-
jti: string;
|
|
15
|
-
iat: number;
|
|
16
|
-
exp: number;
|
|
17
|
-
refreshTokenExp: number;
|
|
18
|
-
sessionId: string;
|
|
19
|
-
subject: string;
|
|
20
|
-
}>;
|
|
21
|
-
};
|
|
22
|
-
refresh: {
|
|
23
|
-
resource: string;
|
|
24
|
-
method: "POST";
|
|
25
|
-
parameters: import("../../schema").ObjectSchema<{
|
|
26
|
-
data: unknown;
|
|
27
|
-
}>;
|
|
28
|
-
result: import("../../schema").ObjectSchema<{
|
|
29
|
-
jti: string;
|
|
30
|
-
iat: number;
|
|
31
|
-
exp: number;
|
|
32
|
-
refreshTokenExp: number;
|
|
33
|
-
sessionId: string;
|
|
34
|
-
subject: string;
|
|
35
|
-
}>;
|
|
36
|
-
};
|
|
37
|
-
endSession: {
|
|
38
|
-
resource: string;
|
|
39
|
-
method: "POST";
|
|
40
|
-
result: import("../../schema").ValueSchema<"ok">;
|
|
41
|
-
};
|
|
42
|
-
timestamp: {
|
|
43
|
-
result: import("../../schema").ValueSchema<number>;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
}>;
|
|
47
|
-
export declare class AuthenticationApiClient extends AuthenticationApiClient_base {
|
|
48
|
-
constructor(httpClient: HttpClient);
|
|
49
|
-
}
|
|
50
|
-
export {};
|
|
1
|
+
import type { ApiClient } from "../../api/client";
|
|
2
|
+
import type { SchemaTestable } from "../../schema/schema";
|
|
3
|
+
import type { ObjectSchemaOrType } from "../../schema/types/types";
|
|
4
|
+
import type { AuthenticationApiDefinition } from '../authentication.api';
|
|
5
|
+
export declare function getAuthenticationApiClient<AdditionalTokenPayload, AuthenticationData>(additionalTokenPayloadSchema: ObjectSchemaOrType<AdditionalTokenPayload>, authenticationDataSchema: SchemaTestable<AuthenticationData>): ApiClient<AuthenticationApiDefinition<AdditionalTokenPayload, AuthenticationData>>;
|
|
6
|
+
export declare const AuthenticationApiClient: ApiClient<AuthenticationApiDefinition<{}, unknown>>;
|
|
@@ -9,19 +9,26 @@ 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.AuthenticationApiClient = void 0;
|
|
12
|
+
exports.AuthenticationApiClient = exports.getAuthenticationApiClient = void 0;
|
|
13
13
|
const client_1 = require("../../api/client");
|
|
14
14
|
const container_1 = require("../../container");
|
|
15
15
|
const http_client_1 = require("../../http/client/http-client");
|
|
16
|
+
const object_1 = require("../../schema/schemas/object");
|
|
17
|
+
const unknown_1 = require("../../schema/schemas/unknown");
|
|
16
18
|
const authentication_api_1 = require("../authentication.api");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
function getAuthenticationApiClient(additionalTokenPayloadSchema, authenticationDataSchema) {
|
|
20
|
+
const definition = (0, authentication_api_1.getAuthenticationApiDefinition)(additionalTokenPayloadSchema, authenticationDataSchema);
|
|
21
|
+
let AuthenticationApiClient = class AuthenticationApiClient extends (0, client_1.compileClient)(definition) {
|
|
22
|
+
constructor(httpClient) {
|
|
23
|
+
super(httpClient);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
AuthenticationApiClient = __decorate([
|
|
27
|
+
(0, container_1.singleton)(),
|
|
28
|
+
__metadata("design:paramtypes", [http_client_1.HttpClient])
|
|
29
|
+
], AuthenticationApiClient);
|
|
30
|
+
return AuthenticationApiClient;
|
|
31
|
+
}
|
|
32
|
+
exports.getAuthenticationApiClient = getAuthenticationApiClient;
|
|
33
|
+
exports.AuthenticationApiClient = getAuthenticationApiClient(object_1.emptyObjectSchema, (0, unknown_1.unknown)());
|
|
27
34
|
//# sourceMappingURL=api.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.client.js","sourceRoot":"","sources":["../../../source/authentication/client/api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"api.client.js","sourceRoot":"","sources":["../../../source/authentication/client/api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA6C;AAC7C,+CAAwC;AACxC,+DAAuD;AAEvD,wDAA4D;AAC5D,0DAAmD;AAGnD,8DAAuE;AAEvE,SAAgB,0BAA0B,CACxC,4BAAwE,EACxE,wBAA4D;IAE5D,MAAM,UAAU,GAAG,IAAA,mDAA8B,EAAC,4BAA4B,EAAE,wBAAwB,CAAC,CAAC;IAE1G,IACM,uBAAuB,GAD7B,MACM,uBAAwB,SAAQ,IAAA,sBAAa,EAAC,UAAU,CAAC;QAC7D,YAAY,UAAsB;YAChC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpB,CAAC;KACF,CAAA;IAJK,uBAAuB;QAD5B,IAAA,qBAAS,GAAE;yCAEc,wBAAU;OAD9B,uBAAuB,CAI5B;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAdD,gEAcC;AAEY,QAAA,uBAAuB,GAAG,0BAA0B,CAAC,0BAAiB,EAAE,IAAA,iBAAO,GAAE,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { Record } from "../../types";
|
|
2
|
+
export declare abstract class AuthenticationTokenPayloadProvider<AdditionalTokenPayload = Record<never>, AuthenticationData = void> {
|
|
3
|
+
abstract getTokenPayload(subject: string, authenticationData: AuthenticationData): AdditionalTokenPayload | Promise<AdditionalTokenPayload>;
|
|
3
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication-token-payload.provider.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication-token-payload.provider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAAqC;
|
|
1
|
+
{"version":3,"file":"authentication-token-payload.provider.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication-token-payload.provider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAAqC;AAI9B,IAAe,kCAAkC,GAAjD,MAAe,kCAAkC;CAEvD,CAAA;AAFqB,kCAAkC;IADvD,IAAA,kBAAK,GAAE;GACc,kCAAkC,CAEvD;AAFqB,gFAAkC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ApiController, ApiRequestData, ApiServerResult } from "../../api/types";
|
|
2
|
+
import type { Record } from "../../types";
|
|
2
3
|
import type { AuthenticationApiDefinition } from '../authentication.api';
|
|
3
4
|
import { AuthenticationService } from './authentication.service';
|
|
4
|
-
export declare class AuthenticationApiController<AdditionalTokenPayload
|
|
5
|
+
export declare class AuthenticationApiController<AdditionalTokenPayload = Record<never>, AuthenticationData = void> implements ApiController<AuthenticationApiDefinition<AdditionalTokenPayload, AuthenticationData>> {
|
|
5
6
|
readonly authenticationService: AuthenticationService<AdditionalTokenPayload, AuthenticationData>;
|
|
6
7
|
constructor(authenticationService: AuthenticationService<AdditionalTokenPayload, AuthenticationData>);
|
|
7
8
|
token({ parameters }: ApiRequestData<AuthenticationApiDefinition<AdditionalTokenPayload, AuthenticationData>, 'token'>): Promise<ApiServerResult<AuthenticationApiDefinition<AdditionalTokenPayload, AuthenticationData>, 'token'>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.api-controller.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication.api-controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA6C;AAE7C,uEAA+D;AAC/D,8CAAmD;
|
|
1
|
+
{"version":3,"file":"authentication.api-controller.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication.api-controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA6C;AAE7C,uEAA+D;AAC/D,8CAAmD;AAEnD,qDAAqD;AAErD,8DAAoE;AAEpE,qEAAiE;AACjE,qCAAqE;AAG9D,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAC7B,qBAAqB,CAAoE;IAElG,YAAY,qBAAwF;QAClG,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,EAAoG;QAC1H,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAElH,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;YACjC,MAAM,IAAI,sCAAiB,CAAC,sBAAsB,CAAC,CAAC;SACrD;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAExG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAsG;QACvI,MAAM,WAAW,GAAG,IAAA,kDAAyC,EAAC,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAyG;QACjI,MAAM,WAAW,GAAG,IAAA,kDAAyC,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,OAAO,IAAA,4BAAgB,GAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAuC;QAC9F,MAAM,MAAM,GAAsG,SAAS,CAAC,OAA4G,CAAC;QAEzO,OAAO,IAAI,2BAAkB,CAAC;YAC5B,OAAO,EAAE;gBACP,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAE;gBAChJ,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAE;aACvJ;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;aACb;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAnDY,2BAA2B;IADvC,IAAA,sBAAa,EAAC,gDAA2B,CAAC;qCAIN,8CAAqB;GAH7C,2BAA2B,CAmDvC;AAnDY,kEAA2B"}
|
|
@@ -27,17 +27,17 @@ export type TokenResult<AdditionalTokenPayload = Record<never>> = {
|
|
|
27
27
|
jsonToken: Token<AdditionalTokenPayload>;
|
|
28
28
|
refreshToken: string;
|
|
29
29
|
};
|
|
30
|
-
export declare class AuthenticationService<AdditionalTokenPayload = Record<never>, AuthenticationData =
|
|
30
|
+
export declare class AuthenticationService<AdditionalTokenPayload = Record<never>, AuthenticationData = void> implements AfterResolve {
|
|
31
31
|
private readonly credentialsRepository;
|
|
32
32
|
private readonly sessionRepository;
|
|
33
|
-
private readonly
|
|
33
|
+
private readonly tokenPayloadProvider;
|
|
34
34
|
private readonly secret;
|
|
35
35
|
private readonly tokenVersion;
|
|
36
36
|
private readonly tokenTimeToLive;
|
|
37
37
|
private readonly sessionTimeToLive;
|
|
38
38
|
private derivedTokenSigningSecret;
|
|
39
39
|
private derivedRefreshTokenSigningSecret;
|
|
40
|
-
constructor(
|
|
40
|
+
constructor(credentialsRepository: AuthenticationCredentialsRepository, sessionRepository: AuthenticationSessionRepository, tokenPayloadProvider: AuthenticationTokenPayloadProvider<AdditionalTokenPayload, AuthenticationData> | undefined, options: AuthenticationServiceOptions);
|
|
41
41
|
[afterResolve](): Promise<void>;
|
|
42
42
|
initialize(): Promise<void>;
|
|
43
43
|
setCredentials(subject: string, secret: string): Promise<void>;
|
|
@@ -32,17 +32,17 @@ const SIGNING_SECRETS_LENGTH = 512;
|
|
|
32
32
|
let AuthenticationService = class AuthenticationService {
|
|
33
33
|
credentialsRepository;
|
|
34
34
|
sessionRepository;
|
|
35
|
-
|
|
35
|
+
tokenPayloadProvider;
|
|
36
36
|
secret;
|
|
37
37
|
tokenVersion;
|
|
38
38
|
tokenTimeToLive;
|
|
39
39
|
sessionTimeToLive;
|
|
40
40
|
derivedTokenSigningSecret;
|
|
41
41
|
derivedRefreshTokenSigningSecret;
|
|
42
|
-
constructor(
|
|
43
|
-
this.credentialsRepository =
|
|
42
|
+
constructor(credentialsRepository, sessionRepository, tokenPayloadProvider, options) {
|
|
43
|
+
this.credentialsRepository = credentialsRepository;
|
|
44
44
|
this.sessionRepository = sessionRepository;
|
|
45
|
-
this.
|
|
45
|
+
this.tokenPayloadProvider = tokenPayloadProvider;
|
|
46
46
|
this.secret = options.secret;
|
|
47
47
|
this.tokenVersion = options.version ?? 1;
|
|
48
48
|
this.tokenTimeToLive = options.tokenTimeToLive ?? (5 * units_1.millisecondsPerMinute);
|
|
@@ -88,7 +88,7 @@ let AuthenticationService = class AuthenticationService {
|
|
|
88
88
|
refreshTokenSalt: new Uint8Array(),
|
|
89
89
|
refreshTokenHash: new Uint8Array()
|
|
90
90
|
});
|
|
91
|
-
const tokenPayload = await this.
|
|
91
|
+
const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(subject, authenticationData);
|
|
92
92
|
const { token, jsonToken } = await this.createToken(tokenPayload, subject, session.id, end, now);
|
|
93
93
|
const refreshToken = await this.createRefreshToken(subject, session.id, end);
|
|
94
94
|
await this.sessionRepository.extend(session.id, {
|
|
@@ -116,7 +116,7 @@ let AuthenticationService = class AuthenticationService {
|
|
|
116
116
|
}
|
|
117
117
|
const now = (0, date_time_1.currentTimestamp)();
|
|
118
118
|
const newEnd = now + this.sessionTimeToLive;
|
|
119
|
-
const tokenPayload = await this.
|
|
119
|
+
const tokenPayload = await this.tokenPayloadProvider?.getTokenPayload(session.subject, authenticationData);
|
|
120
120
|
const { token, jsonToken } = await this.createToken(tokenPayload, session.subject, sessionId, newEnd, now);
|
|
121
121
|
const newRefreshToken = await this.createRefreshToken(validatedToken.payload.subject, sessionId, newEnd);
|
|
122
122
|
await this.sessionRepository.extend(sessionId, {
|
|
@@ -193,11 +193,11 @@ let AuthenticationService = class AuthenticationService {
|
|
|
193
193
|
};
|
|
194
194
|
AuthenticationService = __decorate([
|
|
195
195
|
(0, container_1.singleton)(),
|
|
196
|
+
__param(2, (0, container_1.inject)(authentication_token_payload_provider_1.AuthenticationTokenPayloadProvider)),
|
|
196
197
|
__param(2, (0, container_1.optional)()),
|
|
197
198
|
__param(3, (0, container_1.inject)(tokens_1.AUTHENTICATION_SERVICE_OPTIONS)),
|
|
198
199
|
__metadata("design:paramtypes", [authentication_credentials_repository_1.AuthenticationCredentialsRepository,
|
|
199
|
-
authentication_session_repository_1.AuthenticationSessionRepository,
|
|
200
|
-
authentication_token_payload_provider_1.AuthenticationTokenPayloadProvider, Object])
|
|
200
|
+
authentication_session_repository_1.AuthenticationSessionRepository, Object, Object])
|
|
201
201
|
], AuthenticationService);
|
|
202
202
|
exports.AuthenticationService = AuthenticationService;
|
|
203
203
|
//# sourceMappingURL=authentication.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.service.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AACxE,yEAAgE;AAEhE,mDAA4C;AAC5C,2DAAuD;AACvD,qDAA2G;AAC3G,+CAA8C;AAC9C,yCAAmF;AACnF,+CAAiE;AACjE,yDAAkD;AAClD,6CAA0E;AAE1E,mGAA8F;AAC9F,2FAAsF;AACtF,mGAA6F;AAC7F,qCAA8C;AAC9C,qCAA0D;AAsC1D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAG5B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACf,qBAAqB,CAAsC;IAC3D,iBAAiB,CAAkC;IACnD,
|
|
1
|
+
{"version":3,"file":"authentication.service.js","sourceRoot":"","sources":["../../../source/authentication/server/authentication.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,6 @@ export type AuthenticationModuleConfig = {
|
|
|
7
7
|
serviceOptions: AuthenticationServiceOptions;
|
|
8
8
|
credentialsRepository: Type<AuthenticationCredentialsRepository>;
|
|
9
9
|
sessionRepository: Type<AuthenticationSessionRepository>;
|
|
10
|
-
tokenPayloadProvider?: Type<AuthenticationTokenPayloadProvider
|
|
10
|
+
tokenPayloadProvider?: Type<AuthenticationTokenPayloadProvider<any, any>>;
|
|
11
11
|
};
|
|
12
12
|
export declare function configureAuthenticationServer(config: AuthenticationModuleConfig): void;
|
|
@@ -10,11 +10,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
/* eslint-disable max-classes-per-file */
|
|
13
|
-
const client_1 = require("../../api/client");
|
|
14
13
|
const server_1 = require("../../api/server");
|
|
15
14
|
const application_1 = require("../../application");
|
|
16
|
-
const
|
|
17
|
-
const client_2 = require("../../authentication/client");
|
|
15
|
+
const client_1 = require("../../authentication/client");
|
|
18
16
|
const authentication_token_payload_provider_1 = require("../../authentication/server/authentication-token-payload.provider");
|
|
19
17
|
const authentication_api_controller_1 = require("../../authentication/server/authentication.api-controller");
|
|
20
18
|
const authentication_service_1 = require("../../authentication/server/authentication.service");
|
|
@@ -60,9 +58,8 @@ CustomTokenPayloadProvider = __decorate([
|
|
|
60
58
|
});
|
|
61
59
|
(0, mongo_authentication_credentials_repository_1.configureMongoAuthenticationCredentialsRepository)({ collection: 'credentials' });
|
|
62
60
|
(0, mongo_authentication_session_repository_1.configureMongoAuthenticationSessionRepository)({ collection: 'sessions' });
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
(0, client_2.configureAuthenticationClient)({
|
|
61
|
+
const CustomAuthenticationApiClient = (0, client_1.getAuthenticationApiClient)(CustomTokenPaylod, AuthenticationData);
|
|
62
|
+
(0, client_1.configureAuthenticationClient)({
|
|
66
63
|
authenticationApiClient: CustomAuthenticationApiClient
|
|
67
64
|
});
|
|
68
65
|
(0, local_1.configureLocalMessageBus)();
|
|
@@ -72,7 +69,7 @@ async function serverTest() {
|
|
|
72
69
|
}
|
|
73
70
|
async function clientTest() {
|
|
74
71
|
await (0, timing_1.timeout)(250); // allow server to initialize
|
|
75
|
-
const authenticationService = container_1.container.resolve(
|
|
72
|
+
const authenticationService = container_1.container.resolve(client_1.AuthenticationService);
|
|
76
73
|
authenticationService.initialize();
|
|
77
74
|
await authenticationService.login('foobar', 'supersecret', { deviceId: 'my-device' });
|
|
78
75
|
authenticationService.token$.subscribe((token) => console.log({ token }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-authentication.js","sourceRoot":"","sources":["../../../source/examples/api/custom-authentication.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"custom-authentication.js","sourceRoot":"","sources":["../../../source/examples/api/custom-authentication.ts"],"names":[],"mappings":"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"}
|