You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
'use strict'
|
|
|
|
const TOKEN_ERROR_CODES = {
|
|
invalidType: 'FAST_JWT_INVALID_TYPE', // Invalid token type
|
|
invalidOption: 'FAST_JWT_INVALID_OPTION', // The option object is not valid
|
|
invalidAlgorithm: 'FAST_JWT_INVALID_ALGORITHM', // The token algorithm is invalid
|
|
invalidClaimType: 'FAST_JWT_INVALID_CLAIM_TYPE', // The claim type is not supported
|
|
invalidClaimValue: 'FAST_JWT_INVALID_CLAIM_VALUE', // The claim type is not a positive integer or an number array
|
|
invalidKey: 'FAST_JWT_INVALID_KEY', // The key is not a string or a buffer or is unsupported
|
|
invalidSignature: 'FAST_JWT_INVALID_SIGNATURE', // The token signature is invalid
|
|
invalidPayload: 'FAST_JWT_INVALID_PAYLOAD', // The payload to be decoded must be an object
|
|
malformed: 'FAST_JWT_MALFORMED', // The token is malformed
|
|
inactive: 'FAST_JWT_INACTIVE', // The token is not valid yet
|
|
expired: 'FAST_JWT_EXPIRED', // The token is expired
|
|
missingKey: 'FAST_JWT_MISSING_KEY', // The key option is missing
|
|
keyFetchingError: 'FAST_JWT_KEY_FETCHING_ERROR', // Could not retrieve the key
|
|
signError: 'FAST_JWT_SIGN_ERROR', // Cannot create the signature
|
|
verifyError: 'FAST_JWT_VERIFY_ERROR', // Cannot verify the signature
|
|
missingRequiredClaim: 'FAST_JWT_MISSING_REQUIRED_CLAIM', // A required claim is missing
|
|
missingSignature: 'FAST_JWT_MISSING_SIGNATURE' // The token signature is missing
|
|
}
|
|
|
|
class TokenError extends Error {
|
|
constructor(code, message, additional) {
|
|
super(message)
|
|
Error.captureStackTrace(this, this.constructor)
|
|
|
|
this.code = code
|
|
|
|
if (additional) {
|
|
for (const k in additional) {
|
|
this[k] = additional[k]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
TokenError.codes = TOKEN_ERROR_CODES
|
|
|
|
TokenError.wrap = function (originalError, code, message) {
|
|
if (originalError instanceof TokenError) {
|
|
return originalError
|
|
}
|
|
|
|
return new TokenError(code, message, { originalError })
|
|
}
|
|
|
|
module.exports = {
|
|
TokenError,
|
|
TOKEN_ERROR_CODES
|
|
}
|