Skip to content

Commit c486dab

Browse files
committed
moved jwks client initalization to constructor
1 parent dda9aee commit c486dab

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

src/api/api.service.ts

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ CryptoJS.lib.WordArray.words;
4040

4141
@Injectable()
4242
export class ApiService {
43+
private client: any
44+
private getKey: any;
4345
encodedBase64Key;
4446
parsedBase64Key;
4547
constructor(
@@ -48,7 +50,25 @@ export class ApiService {
4850
private readonly otpService: OtpService,
4951
private readonly configResolverService: ConfigResolverService,
5052
@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+
}
5272

5373
login(user: any, authHeader: string): Promise<SignupResponse> {
5474
return this.fusionAuthService
@@ -736,26 +756,8 @@ export class ApiService {
736756
}
737757

738758
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-
757759
return new Promise<any>((resolve, reject) => {
758-
jwt.verify(token, getKey, async (err, decoded) => {
760+
jwt.verify(token, this.getKey, async (err, decoded) => {
759761
if (err) {
760762
console.error('APP JWT verification error:', err);
761763
resolve({

0 commit comments

Comments
 (0)