Skip to content

Commit b7607e7

Browse files
committed
Make verify method generic
1 parent 353afcb commit b7607e7

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/JwtHandler.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export type PubkeyResolver = (keyId: string) => PubkeyData | Promise<PubkeyData>
1515
export type PrivkeyResolver = (keyId: string) => PrivkeyData | Promise<PrivkeyData>
1616

1717
// tslint:disable-next-line:max-line-length
18-
type JwtVerifyAsync = (token: string, publicKey: string | Buffer, options?: jwt.VerifyOptions) => Promise<object | string>
18+
type JwtVerifyAsync = <T extends string | object>(token: string, publicKey: string | Buffer, options?: jwt.VerifyOptions) => Promise<T>
1919
type JwtSignAsync = (payload: string | Buffer | object, privateKey: {}, options?: jwt.SignOptions) => Promise<string>
2020

2121
shim() // util.promisify shim
@@ -65,7 +65,7 @@ export class JwtHandler {
6565
* @param {Object} options Validation options (jsonwebtoken module options)
6666
* @return {Promise<Object, JsonWebTokenError>} Promise to the JWT body
6767
*/
68-
public async verify(jwtRaw: string, options?: jwt.VerifyOptions): Promise<string | { [key: string]: any }> {
68+
public async verify<T extends string | { [key: string]: any }>(jwtRaw: string, options?: jwt.VerifyOptions): Promise<T> {
6969
if (!jwtRaw) {
7070
throw new jwt.JsonWebTokenError("Empty JWT")
7171
}
@@ -77,7 +77,7 @@ export class JwtHandler {
7777
throw new UnknownKeyIdError(keyId)
7878
}
7979
debug("cert found")
80-
return this.jwtVerifyAsync(jwtRaw, certData.cert, options)
80+
return this.jwtVerifyAsync<T>(jwtRaw, certData.cert, options)
8181
}
8282
throw new Error("No public key resolver specified")
8383
}

0 commit comments

Comments
 (0)