jose/lib/errors.js
2019-01-20 19:37:27 +01:00

35 lines
1.6 KiB
JavaScript

const CODES = {
TODO: 'ERR_TODO',
JWSInvalidHeader: 'ERR_JWS_INVALID_HEADER',
JWSMissingAlg: 'ERR_JWS_ALG_MISSING',
JWSNoRecipients: 'ERR_JWS_NO_RECIPIENTS',
JWSVerificationFailed: 'ERR_JWS_VERIFICATION_FAILED',
JWTAudienceMismatch: 'ERR_JWT_AUDIENCE_MISMATCH',
JWTInvalidAlgorithm: 'ERR_JWT_INVALID_ALGORITHM',
JWTIssuerMismatch: 'ERR_JWT_ISSUER_MISMATCH',
JWTNonceMismatch: 'ERR_JWT_NONCE_MISMATCH',
JWTSubjectMismatch: 'ERR_JWT_SUBJECT_MISMATCH',
JWTTokenIdMismatch: 'ERR_JWT_TOKEN_ID_MISMATCH'
}
class JoseError extends Error {
constructor (message) {
super(message)
this.name = this.constructor.name
this.code = CODES[this.constructor.name]
Error.captureStackTrace(this, this.constructor)
}
}
module.exports.JWSInvalidHeader = class JWSInvalidHeader extends JoseError {}
module.exports.JWSMissingAlg = class JWSMissingAlg extends JoseError {}
module.exports.JWSNoRecipients = class JWSNoRecipients extends JoseError {}
module.exports.JWSVerificationFailed = class JWSVerificationFailed extends JoseError {}
module.exports.JWTAudienceMismatch = class JWTAudienceMismatch extends JoseError {}
module.exports.JWTInvalidAlgorithm = class JWTInvalidAlgorithm extends JoseError {}
module.exports.JWTIssuerMismatch = class JWTIssuerMismatch extends JoseError {}
module.exports.JWTNonceMismatch = class JWTNonceMismatch extends JoseError {}
module.exports.JWTSubjectMismatch = class JWTSubjectMismatch extends JoseError {}
module.exports.JWTTokenIdMismatch = class JWTTokenIdMismatch extends JoseError {}
module.exports.TODO = class TODO extends JoseError {}