Skip to content

Commit

Permalink
fix(typescript): Signed JWT Header Parameters has alg as required and…
Browse files Browse the repository at this point in the history
… b64 as never
  • Loading branch information
panva committed Nov 11, 2021
1 parent c7fabd0 commit 79cbd82
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,5 @@ export type {
ResolvedKey,
CompactJWEHeaderParameters,
CompactJWSHeaderParameters,
JWTHeaderParameters,
} from './types.d'
6 changes: 3 additions & 3 deletions src/jwt/sign.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CompactSign } from '../jws/compact/sign.js'
import { JWTInvalid } from '../util/errors.js'
import type { JWSHeaderParameters, KeyLike, SignOptions } from '../types.d'
import type { JWTHeaderParameters, KeyLike, SignOptions } from '../types.d'
import { encoder } from '../lib/buffer_utils.js'
import { ProduceJWT } from './produce.js'

Expand All @@ -21,15 +21,15 @@ import { ProduceJWT } from './produce.js'
* ```
*/
export class SignJWT extends ProduceJWT {
private _protectedHeader!: JWSHeaderParameters
private _protectedHeader!: JWTHeaderParameters

/**
* Sets the JWS Protected Header on the SignJWT object.
*
* @param protectedHeader JWS Protected Header.
* Must contain an "alg" (JWS Algorithm) property.
*/
setProtectedHeader(protectedHeader: JWSHeaderParameters) {
setProtectedHeader(protectedHeader: JWTHeaderParameters) {
this._protectedHeader = protectedHeader
return this
}
Expand Down
4 changes: 2 additions & 2 deletions src/jwt/verify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type {
KeyLike,
VerifyOptions,
JWTClaimVerificationOptions,
JWSHeaderParameters,
JWTHeaderParameters,
GetKeyFunction,
FlattenedJWSInput,
JWTVerifyResult,
Expand All @@ -24,7 +24,7 @@ export interface JWTVerifyOptions extends VerifyOptions, JWTClaimVerificationOpt
* See [createRemoteJWKSet](../functions/jwks_remote.createRemoteJWKSet.md#function-createremotejwkset)
* to verify using a remote JSON Web Key Set.
*/
export interface JWTVerifyGetKey extends GetKeyFunction<JWSHeaderParameters, FlattenedJWSInput> {}
export interface JWTVerifyGetKey extends GetKeyFunction<JWTHeaderParameters, FlattenedJWSInput> {}

/**
* Verifies the JWT format (to be a JWS Compact format), verifies the JWS signature, validates the JWT Claims Set.
Expand Down
8 changes: 8 additions & 0 deletions src/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,14 @@ export interface CompactJWSHeaderParameters extends JWSHeaderParameters {
alg: string
}

/**
* Recognized Signed JWT Header Parameters, any other Header Members
* may also be present.
*/
export interface JWTHeaderParameters extends CompactJWSHeaderParameters {
b64: never
}

/**
* Recognized Compact JWE Header Parameters, any other Header Members
* may also be present.
Expand Down

0 comments on commit 79cbd82

Please sign in to comment.