diff --git a/src/authorize.ts b/src/authorize.ts index b09eed0..ce21fe1 100644 --- a/src/authorize.ts +++ b/src/authorize.ts @@ -21,7 +21,15 @@ type SocketIOMiddleware = ( next: (err?: ExtendedError) => void ) => void -type SecretCallback = (decodedToken: null | { [key: string]: any } | string) => Promise +interface CompleteDecodedToken { + header: { + alg: Algorithm + [key: string]: any + } + payload: any +} + +type SecretCallback = (decodedToken: CompleteDecodedToken) => Promise export interface AuthorizeOptions { secret: string | SecretCallback @@ -58,8 +66,8 @@ export const authorize = (options: AuthorizeOptions): SocketIOMiddleware => { if (typeof secret === 'string') { keySecret = secret } else { - decodedToken = jwt.decode(encodedToken, { complete: true }) - keySecret = await secret(decodedToken) + const completeDecodedToken = jwt.decode(encodedToken, { complete: true }) + keySecret = await secret(completeDecodedToken as CompleteDecodedToken) } try { decodedToken = jwt.verify(encodedToken, keySecret, { algorithms })