@nauth-toolkit/core 0.1.77 → 0.1.78
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/dto/social-auth.dto.d.ts +62 -0
- package/dist/dto/social-auth.dto.d.ts.map +1 -1
- package/dist/dto/social-auth.dto.js +108 -1
- package/dist/dto/social-auth.dto.js.map +1 -1
- package/dist/interfaces/token-verifier.interface.d.ts +26 -0
- package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
- package/dist/schemas/auth-config.schema.d.ts +3598 -390
- package/dist/schemas/auth-config.schema.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -321,6 +321,68 @@ export declare class VerifyTokenDTO {
|
|
|
321
321
|
*/
|
|
322
322
|
profileData?: Record<string, unknown>;
|
|
323
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* DTO for verifying native social tokens via a single provider-aware endpoint.
|
|
326
|
+
*
|
|
327
|
+
* @remarks
|
|
328
|
+
* This DTO is intended for consumer-owned HTTP endpoints like:
|
|
329
|
+
* `POST /auth/social/:provider/verify`
|
|
330
|
+
*
|
|
331
|
+
* Unlike {@link VerifyTokenDTO} (which assumes an ID token is always present),
|
|
332
|
+
* this DTO supports conditional validation based on the provider:
|
|
333
|
+
* - **google**: requires `idToken`, `accessToken` optional
|
|
334
|
+
* - **apple**: requires `idToken`, `accessToken` optional, `profileData` optional
|
|
335
|
+
* - **facebook**:
|
|
336
|
+
* - Classic login: requires `accessToken`
|
|
337
|
+
* - Limited Login (OIDC): requires `idToken` (JWT)
|
|
338
|
+
*
|
|
339
|
+
* Security:
|
|
340
|
+
* - Enforces provider allow-list
|
|
341
|
+
* - Enforces per-provider required fields
|
|
342
|
+
* - Trims tokens to avoid whitespace bugs
|
|
343
|
+
*
|
|
344
|
+
* @example
|
|
345
|
+
* ```typescript
|
|
346
|
+
* // Facebook classic
|
|
347
|
+
* { provider: 'facebook', accessToken: 'EAAB...' }
|
|
348
|
+
*
|
|
349
|
+
* // Facebook Limited Login (iOS)
|
|
350
|
+
* { provider: 'facebook', idToken: 'eyJhbGciOiJSUzI1NiIs...' }
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
export declare class VerifyNativeSocialTokenDTO {
|
|
354
|
+
/**
|
|
355
|
+
* Social provider name.
|
|
356
|
+
*
|
|
357
|
+
* @example
|
|
358
|
+
* ```typescript
|
|
359
|
+
* { provider: 'google' }
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
provider: string;
|
|
363
|
+
/**
|
|
364
|
+
* ID token (JWT) from native SDK.
|
|
365
|
+
*
|
|
366
|
+
* Required for:
|
|
367
|
+
* - google
|
|
368
|
+
* - apple
|
|
369
|
+
* - facebook Limited Login (OIDC)
|
|
370
|
+
*/
|
|
371
|
+
idToken?: string;
|
|
372
|
+
/**
|
|
373
|
+
* Access token (opaque) from native SDK.
|
|
374
|
+
*
|
|
375
|
+
* Required for:
|
|
376
|
+
* - facebook classic login (when idToken is not provided)
|
|
377
|
+
*/
|
|
378
|
+
accessToken?: string;
|
|
379
|
+
/**
|
|
380
|
+
* Optional profile data from native SDK.
|
|
381
|
+
*
|
|
382
|
+
* Commonly used for Apple (first-time sign-in) to capture name/email.
|
|
383
|
+
*/
|
|
384
|
+
profileData?: Record<string, unknown>;
|
|
385
|
+
}
|
|
324
386
|
/**
|
|
325
387
|
* DTO for exchanging a social redirect exchange token
|
|
326
388
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-auth.dto.d.ts","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,QAAQ,EAAG,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC;QACf,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,8BAA8B;IACzC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,cAAc,EAAG,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;IAIH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAC9C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;;;;OAYG;IASH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;;;;;;;;OAYG;IAUH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,aAAa,EAAG,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"social-auth.dto.d.ts","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,QAAQ,EAAG,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC;QACf,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,8BAA8B;IACzC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,cAAc,EAAG,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;IAIH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAC9C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;;;;OAYG;IASH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;;;;;;;;OAYG;IAUH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,0BAA0B;IACrC;;;;;;;OAOG;IAQH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;OAOG;IAYH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IAUH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,aAAa,EAAG,MAAM,CAAC;CACxB"}
|
|
@@ -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.SocialExchangeDTO = exports.VerifyTokenDTO = exports.HandleCallbackDTO = exports.SetPasswordForSocialUserResponseDTO = exports.SetPasswordForSocialUserDTO = exports.CanSetPasswordResponseDTO = exports.CanSetPasswordDTO = exports.UnlinkSocialAccountResponseDTO = exports.UnlinkSocialAccountDTO = exports.GetLinkedAccountsResponseDTO = exports.GetLinkedAccountsDTO = exports.LinkSocialAccountResponseDTO = exports.LinkSocialAccountDTO = void 0;
|
|
12
|
+
exports.SocialExchangeDTO = exports.VerifyNativeSocialTokenDTO = exports.VerifyTokenDTO = exports.HandleCallbackDTO = exports.SetPasswordForSocialUserResponseDTO = exports.SetPasswordForSocialUserDTO = exports.CanSetPasswordResponseDTO = exports.CanSetPasswordDTO = exports.UnlinkSocialAccountResponseDTO = exports.UnlinkSocialAccountDTO = exports.GetLinkedAccountsResponseDTO = exports.GetLinkedAccountsDTO = exports.LinkSocialAccountResponseDTO = exports.LinkSocialAccountDTO = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
/**
|
|
@@ -492,6 +492,113 @@ __decorate([
|
|
|
492
492
|
(0, class_validator_1.IsObject)({ message: 'profileData must be an object' }),
|
|
493
493
|
__metadata("design:type", Object)
|
|
494
494
|
], VerifyTokenDTO.prototype, "profileData", void 0);
|
|
495
|
+
/**
|
|
496
|
+
* DTO for verifying native social tokens via a single provider-aware endpoint.
|
|
497
|
+
*
|
|
498
|
+
* @remarks
|
|
499
|
+
* This DTO is intended for consumer-owned HTTP endpoints like:
|
|
500
|
+
* `POST /auth/social/:provider/verify`
|
|
501
|
+
*
|
|
502
|
+
* Unlike {@link VerifyTokenDTO} (which assumes an ID token is always present),
|
|
503
|
+
* this DTO supports conditional validation based on the provider:
|
|
504
|
+
* - **google**: requires `idToken`, `accessToken` optional
|
|
505
|
+
* - **apple**: requires `idToken`, `accessToken` optional, `profileData` optional
|
|
506
|
+
* - **facebook**:
|
|
507
|
+
* - Classic login: requires `accessToken`
|
|
508
|
+
* - Limited Login (OIDC): requires `idToken` (JWT)
|
|
509
|
+
*
|
|
510
|
+
* Security:
|
|
511
|
+
* - Enforces provider allow-list
|
|
512
|
+
* - Enforces per-provider required fields
|
|
513
|
+
* - Trims tokens to avoid whitespace bugs
|
|
514
|
+
*
|
|
515
|
+
* @example
|
|
516
|
+
* ```typescript
|
|
517
|
+
* // Facebook classic
|
|
518
|
+
* { provider: 'facebook', accessToken: 'EAAB...' }
|
|
519
|
+
*
|
|
520
|
+
* // Facebook Limited Login (iOS)
|
|
521
|
+
* { provider: 'facebook', idToken: 'eyJhbGciOiJSUzI1NiIs...' }
|
|
522
|
+
* ```
|
|
523
|
+
*/
|
|
524
|
+
class VerifyNativeSocialTokenDTO {
|
|
525
|
+
/**
|
|
526
|
+
* Social provider name.
|
|
527
|
+
*
|
|
528
|
+
* @example
|
|
529
|
+
* ```typescript
|
|
530
|
+
* { provider: 'google' }
|
|
531
|
+
* ```
|
|
532
|
+
*/
|
|
533
|
+
provider;
|
|
534
|
+
/**
|
|
535
|
+
* ID token (JWT) from native SDK.
|
|
536
|
+
*
|
|
537
|
+
* Required for:
|
|
538
|
+
* - google
|
|
539
|
+
* - apple
|
|
540
|
+
* - facebook Limited Login (OIDC)
|
|
541
|
+
*/
|
|
542
|
+
// Keep this simple:
|
|
543
|
+
// - google/apple: always required
|
|
544
|
+
// - facebook: required only when accessToken is NOT provided
|
|
545
|
+
idToken;
|
|
546
|
+
/**
|
|
547
|
+
* Access token (opaque) from native SDK.
|
|
548
|
+
*
|
|
549
|
+
* Required for:
|
|
550
|
+
* - facebook classic login (when idToken is not provided)
|
|
551
|
+
*/
|
|
552
|
+
// Required only for facebook when idToken is not provided
|
|
553
|
+
accessToken;
|
|
554
|
+
/**
|
|
555
|
+
* Optional profile data from native SDK.
|
|
556
|
+
*
|
|
557
|
+
* Commonly used for Apple (first-time sign-in) to capture name/email.
|
|
558
|
+
*/
|
|
559
|
+
profileData;
|
|
560
|
+
}
|
|
561
|
+
exports.VerifyNativeSocialTokenDTO = VerifyNativeSocialTokenDTO;
|
|
562
|
+
__decorate([
|
|
563
|
+
(0, class_validator_1.IsString)({ message: 'provider must be a string' }),
|
|
564
|
+
(0, class_validator_1.MaxLength)(50, { message: 'provider must not exceed 50 characters' }),
|
|
565
|
+
(0, class_transformer_1.Transform)(({ value }) => {
|
|
566
|
+
if (typeof value === 'string')
|
|
567
|
+
return value.trim().toLowerCase();
|
|
568
|
+
return value;
|
|
569
|
+
}),
|
|
570
|
+
(0, class_validator_1.IsIn)(['google', 'apple', 'facebook'], { message: 'provider must be one of: google, apple, facebook' }),
|
|
571
|
+
__metadata("design:type", String)
|
|
572
|
+
], VerifyNativeSocialTokenDTO.prototype, "provider", void 0);
|
|
573
|
+
__decorate([
|
|
574
|
+
(0, class_validator_1.ValidateIf)((o) => o.provider !== 'facebook' || !o.accessToken),
|
|
575
|
+
(0, class_validator_1.IsString)({ message: 'idToken must be a string' }),
|
|
576
|
+
(0, class_validator_1.MinLength)(1, { message: 'idToken must not be empty' }),
|
|
577
|
+
(0, class_validator_1.MaxLength)(10000, { message: 'idToken must not exceed 10000 characters' }),
|
|
578
|
+
(0, class_transformer_1.Transform)(({ value }) => {
|
|
579
|
+
if (typeof value === 'string')
|
|
580
|
+
return value.trim();
|
|
581
|
+
return value;
|
|
582
|
+
}),
|
|
583
|
+
__metadata("design:type", String)
|
|
584
|
+
], VerifyNativeSocialTokenDTO.prototype, "idToken", void 0);
|
|
585
|
+
__decorate([
|
|
586
|
+
(0, class_validator_1.ValidateIf)((o) => o.provider === 'facebook' && !o.idToken),
|
|
587
|
+
(0, class_validator_1.IsString)({ message: 'accessToken must be a string' }),
|
|
588
|
+
(0, class_validator_1.MinLength)(1, { message: 'accessToken must not be empty' }),
|
|
589
|
+
(0, class_validator_1.MaxLength)(2000, { message: 'accessToken must not exceed 2000 characters' }),
|
|
590
|
+
(0, class_transformer_1.Transform)(({ value }) => {
|
|
591
|
+
if (typeof value === 'string')
|
|
592
|
+
return value.trim();
|
|
593
|
+
return value;
|
|
594
|
+
}),
|
|
595
|
+
__metadata("design:type", String)
|
|
596
|
+
], VerifyNativeSocialTokenDTO.prototype, "accessToken", void 0);
|
|
597
|
+
__decorate([
|
|
598
|
+
(0, class_validator_1.IsOptional)(),
|
|
599
|
+
(0, class_validator_1.IsObject)({ message: 'profileData must be an object' }),
|
|
600
|
+
__metadata("design:type", Object)
|
|
601
|
+
], VerifyNativeSocialTokenDTO.prototype, "profileData", void 0);
|
|
495
602
|
/**
|
|
496
603
|
* DTO for exchanging a social redirect exchange token
|
|
497
604
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-auth.dto.js","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"social-auth.dto.js","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAiH;AACjH,yDAA8C;AAE9C;;;;;;;GAOG;AACH,MAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,CAAU;IAEhB;;;;;;;;;OASG;IASH,QAAQ,CAAU;IAElB;;;;;;;;;OASG;IASH,IAAI,CAAU;IAEd;;;;;;;;;OASG;IASH,KAAK,CAAU;CAChB;AA9ED,oDA8EC;AA7DC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;oDACc;AAoBhB;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IACzE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;sDACgB;AAoBlB;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;IAClF,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;kDACY;AAoBd;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC/C,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;mDACa;AAGjB;;GAEG;AACH,MAAa,4BAA4B;IACvC;;OAEG;IACH,OAAO,CAAU;IAEjB;;OAEG;IACH,QAAQ,CAAU;CACnB;AAVD,oEAUC;AAED;;;;;GAKG;AACH,MAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,CAAU;CACjB;AAlBD,oDAkBC;AADC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;oDACc;AAGlB;;GAEG;AACH,MAAa,4BAA4B;IACvC;;OAEG;IACH,QAAQ,CAKL;CACJ;AAVD,oEAUC;AAED;;;;;;GAMG;AACH,MAAa,sBAAsB;IACjC;;;;;;;;OAQG;IAQH,MAAM,CAAU;IAEhB;;;;;;;;;OASG;IASH,QAAQ,CAAU;CACnB;AAtCD,wDAsCC;AArBC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;sDACc;AAoBhB;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IACzE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;wDACgB;AAGpB;;GAEG;AACH,MAAa,8BAA8B;IACzC;;OAEG;IACH,OAAO,CAAU;CAClB;AALD,wEAKC;AAED;;;;;GAKG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IAQH,MAAM,CAAU;CACjB;AAlBD,8CAkBC;AADC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;iDACc;AAGlB;;GAEG;AACH,MAAa,yBAAyB;IACpC;;OAEG;IACH,cAAc,CAAW;CAC1B;AALD,8DAKC;AAED;;;;;;GAMG;AACH,MAAa,2BAA2B;IACtC;;;;;;;;OAQG;IAQH,MAAM,CAAU;IAEhB;;;;;;;;;;OAUG;IAIH,QAAQ,CAAU;CACnB;AAlCD,kEAkCC;AAjBC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;2DACc;AAgBhB;IAHC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IACjD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;6DACrD;AAGpB;;GAEG;AACH,MAAa,mCAAmC;IAC9C;;OAEG;IACH,OAAO,CAAU;CAClB;AALD,kFAKC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,IAAI,CAAU;IAEd;;;;;;;;;OASG;IASH,KAAK,CAAU;CAChB;AAxCD,8CAwCC;AArBC;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;IAClF,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+CACY;AAoBd;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC/C,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;gDACa;AAGjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,cAAc;IACzB;;;;;;;;;;;;OAYG;IASH,OAAO,CAAU;IAEjB;;;;;;;;;;;;OAYG;IAUH,WAAW,CAAU;IAErB;;;;;;;;;;;;;;;;;OAiBG;IAGH,WAAW,CAA2B;CACvC;AArED,wCAqEC;AA/CC;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACjD,IAAA,2BAAS,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IACzE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+CACe;AAwBjB;IATC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,2BAAS,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IAC3E,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;mDACmB;AAsBrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;;mDACjB;AAGxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,0BAA0B;IACrC;;;;;;;OAOG;IAQH,QAAQ,CAAU;IAElB;;;;;;;OAOG;IACH,oBAAoB;IACpB,kCAAkC;IAClC,6DAA6D;IAS7D,OAAO,CAAU;IAEjB;;;;;OAKG;IACH,0DAA0D;IAS1D,WAAW,CAAU;IAErB;;;;OAIG;IAGH,WAAW,CAA2B;CACvC;AAhED,gEAgEC;AAhDC;IAPC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACpE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACD,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC;;4DACrF;AAqBlB;IARC,IAAA,4BAAU,EAAC,CAAC,CAA6B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAC1F,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACjD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACtD,IAAA,2BAAS,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IACzE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;2DACe;AAiBjB;IARC,IAAA,4BAAU,EAAC,CAAC,CAA6B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACtF,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC1D,IAAA,2BAAS,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IAC3E,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+DACmB;AASrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;;+DACjB;AAGxC;;;;;;;;;;GAUG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,aAAa,CAAU;CACxB;AApBD,8CAoBC;AADC;IARC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACvD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IAC3E,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;wDACqB"}
|
|
@@ -93,6 +93,32 @@ export interface ITokenVerifierService {
|
|
|
93
93
|
* ```
|
|
94
94
|
*/
|
|
95
95
|
verifyFacebookToken?(accessToken: string, appId: string, appSecret: string): Promise<unknown>;
|
|
96
|
+
/**
|
|
97
|
+
* Verify Facebook ID token (OIDC / Limited Login) with JWT signature validation
|
|
98
|
+
*
|
|
99
|
+
* Facebook Limited Login (primarily iOS) returns an **ID token (JWT)** instead of an access token.
|
|
100
|
+
* This method verifies the JWT signature using Facebook's OIDC JWKS and validates standard claims.
|
|
101
|
+
*
|
|
102
|
+
* Expected OIDC discovery values:
|
|
103
|
+
* - Issuer: `https://www.facebook.com`
|
|
104
|
+
* - JWKS URI: `https://www.facebook.com/.well-known/oauth/openid/jwks/`
|
|
105
|
+
*
|
|
106
|
+
* Security:
|
|
107
|
+
* - Validates signature (RS256) using Facebook public keys (JWKS)
|
|
108
|
+
* - Validates `iss` (issuer) and `aud` (audience) against the app ID
|
|
109
|
+
* - Validates token freshness (`exp`, `iat`) via jwt library
|
|
110
|
+
*
|
|
111
|
+
* @param idToken - Facebook OIDC ID token (JWT)
|
|
112
|
+
* @param appId - Facebook App ID for audience validation
|
|
113
|
+
* @returns Verified user profile data (provider-specific type)
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* const profile = await verifier.verifyFacebookIdToken(idToken, '1234567890');
|
|
118
|
+
* console.log(profile.sub);
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
verifyFacebookIdToken?(idToken: string, appId: string): Promise<unknown>;
|
|
96
122
|
/**
|
|
97
123
|
* Clear cached clients and keys
|
|
98
124
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-verifier.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/token-verifier.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9F;;;;;;;;;OASG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"token-verifier.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/token-verifier.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,qBAAqB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;CACrB"}
|