Initial commit

This commit is contained in:
talksik
2021-12-29 01:57:42 -08:00
commit ce39a60b42
4634 changed files with 997667 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
const base64url = require('../help/base64url')
const errors = require('../errors')
module.exports = (token, { complete = false } = {}) => {
if (typeof token !== 'string' || !token) {
throw new TypeError('JWT must be a string')
}
const { 0: header, 1: payload, 2: signature, length } = token.split('.')
if (length === 5) {
throw new TypeError('encrypted JWTs cannot be decoded')
}
if (length !== 3) {
throw new errors.JWTMalformed('JWTs must have three components')
}
try {
const result = {
header: base64url.JSON.decode(header),
payload: base64url.JSON.decode(payload),
signature
}
return complete ? result : result.payload
} catch (err) {
throw new errors.JWTMalformed('JWT is malformed')
}
}