@@ -40,6 +40,8 @@ CryptoJS.lib.WordArray.words;
40
40
41
41
@Injectable ( )
42
42
export class ApiService {
43
+ private client : any
44
+ private getKey : any ;
43
45
encodedBase64Key ;
44
46
parsedBase64Key ;
45
47
constructor (
@@ -48,7 +50,25 @@ export class ApiService {
48
50
private readonly otpService : OtpService ,
49
51
private readonly configResolverService : ConfigResolverService ,
50
52
@InjectRedis ( ) private readonly redis : Redis
51
- ) { }
53
+ ) {
54
+ this . client = jwksClient ( {
55
+ jwksUri : this . configService . get ( "JWKS_URI" ) ,
56
+ requestHeaders : { } , // Optional
57
+ timeout : 30000 , // Defaults to 30s
58
+ } ) ;
59
+
60
+ this . getKey = ( header : jwt . JwtHeader , callback : any ) => {
61
+ this . client . getSigningKey ( header . kid , ( err , key : any ) => {
62
+ if ( err ) {
63
+ console . error ( `Error fetching signing key: ${ err } ` ) ;
64
+ callback ( err ) ;
65
+ } else {
66
+ const signingKey = key . publicKey || key . rsaPublicKey ;
67
+ callback ( null , signingKey ) ;
68
+ }
69
+ } ) ;
70
+ } ;
71
+ }
52
72
53
73
login ( user : any , authHeader : string ) : Promise < SignupResponse > {
54
74
return this . fusionAuthService
@@ -736,26 +756,8 @@ export class ApiService {
736
756
}
737
757
738
758
async verifyFusionAuthJWT ( token : string ) : Promise < any > {
739
- let client = jwksClient ( {
740
- jwksUri : this . configService . get ( "JWKS_URI" ) ,
741
- requestHeaders : { } , // Optional
742
- timeout : 30000 , // Defaults to 30s
743
- } ) ;
744
-
745
- let getKey = ( header : jwt . JwtHeader , callback : any ) => {
746
- client . getSigningKey ( header . kid , ( err , key : any ) => {
747
- if ( err ) {
748
- console . error ( `Error fetching signing key: ${ err } ` ) ;
749
- callback ( err ) ;
750
- } else {
751
- const signingKey = key . publicKey || key . rsaPublicKey ;
752
- callback ( null , signingKey ) ;
753
- }
754
- } ) ;
755
- } ;
756
-
757
759
return new Promise < any > ( ( resolve , reject ) => {
758
- jwt . verify ( token , getKey , async ( err , decoded ) => {
760
+ jwt . verify ( token , this . getKey , async ( err , decoded ) => {
759
761
if ( err ) {
760
762
console . error ( 'APP JWT verification error:' , err ) ;
761
763
resolve ( {
0 commit comments