jwt-decode
Advanced tools
Comparing version
@@ -1,108 +0,2 @@ | ||
'use strict'; | ||
/** | ||
* The code was extracted from: | ||
* https://github.com/davidchambers/Base64.js | ||
*/ | ||
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; | ||
function InvalidCharacterError(message) { | ||
this.message = message; | ||
} | ||
InvalidCharacterError.prototype = new Error(); | ||
InvalidCharacterError.prototype.name = "InvalidCharacterError"; | ||
function polyfill(input) { | ||
var str = String(input).replace(/=+$/, ""); | ||
if (str.length % 4 == 1) { | ||
throw new InvalidCharacterError( | ||
"'atob' failed: The string to be decoded is not correctly encoded." | ||
); | ||
} | ||
for ( | ||
// initialize result and counters | ||
var bc = 0, bs, buffer, idx = 0, output = ""; | ||
// get next character | ||
(buffer = str.charAt(idx++)); | ||
// character found in table? initialize bit storage and add its ascii value; | ||
~buffer && | ||
((bs = bc % 4 ? bs * 64 + buffer : buffer), | ||
// and if not first of each 4 characters, | ||
// convert the first 8 bits to one ascii character | ||
bc++ % 4) ? | ||
(output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) : | ||
0 | ||
) { | ||
// try to find character in table (0-63, not found => -1) | ||
buffer = chars.indexOf(buffer); | ||
} | ||
return output; | ||
} | ||
var atob = (typeof window !== "undefined" && | ||
window.atob && | ||
window.atob.bind(window)) || | ||
polyfill; | ||
function b64DecodeUnicode(str) { | ||
return decodeURIComponent( | ||
atob(str).replace(/(.)/g, function(m, p) { | ||
var code = p.charCodeAt(0).toString(16).toUpperCase(); | ||
if (code.length < 2) { | ||
code = "0" + code; | ||
} | ||
return "%" + code; | ||
}) | ||
); | ||
} | ||
function base64_url_decode(str) { | ||
var output = str.replace(/-/g, "+").replace(/_/g, "/"); | ||
switch (output.length % 4) { | ||
case 0: | ||
break; | ||
case 2: | ||
output += "=="; | ||
break; | ||
case 3: | ||
output += "="; | ||
break; | ||
default: | ||
throw "Illegal base64url string!"; | ||
} | ||
try { | ||
return b64DecodeUnicode(output); | ||
} catch (err) { | ||
return atob(output); | ||
} | ||
} | ||
function InvalidTokenError(message) { | ||
this.message = message; | ||
} | ||
InvalidTokenError.prototype = new Error(); | ||
InvalidTokenError.prototype.name = "InvalidTokenError"; | ||
function jwtDecode(token, options) { | ||
if (typeof token !== "string") { | ||
throw new InvalidTokenError("Invalid token specified"); | ||
} | ||
options = options || {}; | ||
var pos = options.header === true ? 0 : 1; | ||
try { | ||
return JSON.parse(base64_url_decode(token.split(".")[pos])); | ||
} catch (e) { | ||
throw new InvalidTokenError("Invalid token specified: " + e.message); | ||
} | ||
} | ||
const wrapper = jwtDecode; | ||
wrapper.InvalidTokenError = InvalidTokenError; | ||
module.exports = wrapper; | ||
"use strict";function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,a=0,i=0,c="";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}n.prototype=new Error,n.prototype.name="InvalidTokenError";const o=function(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}};o.InvalidTokenError=n,module.exports=o; | ||
//# sourceMappingURL=jwt-decode.cjs.js.map |
@@ -1,104 +0,2 @@ | ||
/** | ||
* The code was extracted from: | ||
* https://github.com/davidchambers/Base64.js | ||
*/ | ||
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; | ||
function InvalidCharacterError(message) { | ||
this.message = message; | ||
} | ||
InvalidCharacterError.prototype = new Error(); | ||
InvalidCharacterError.prototype.name = "InvalidCharacterError"; | ||
function polyfill(input) { | ||
var str = String(input).replace(/=+$/, ""); | ||
if (str.length % 4 == 1) { | ||
throw new InvalidCharacterError( | ||
"'atob' failed: The string to be decoded is not correctly encoded." | ||
); | ||
} | ||
for ( | ||
// initialize result and counters | ||
var bc = 0, bs, buffer, idx = 0, output = ""; | ||
// get next character | ||
(buffer = str.charAt(idx++)); | ||
// character found in table? initialize bit storage and add its ascii value; | ||
~buffer && | ||
((bs = bc % 4 ? bs * 64 + buffer : buffer), | ||
// and if not first of each 4 characters, | ||
// convert the first 8 bits to one ascii character | ||
bc++ % 4) ? | ||
(output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) : | ||
0 | ||
) { | ||
// try to find character in table (0-63, not found => -1) | ||
buffer = chars.indexOf(buffer); | ||
} | ||
return output; | ||
} | ||
var atob = (typeof window !== "undefined" && | ||
window.atob && | ||
window.atob.bind(window)) || | ||
polyfill; | ||
function b64DecodeUnicode(str) { | ||
return decodeURIComponent( | ||
atob(str).replace(/(.)/g, function(m, p) { | ||
var code = p.charCodeAt(0).toString(16).toUpperCase(); | ||
if (code.length < 2) { | ||
code = "0" + code; | ||
} | ||
return "%" + code; | ||
}) | ||
); | ||
} | ||
function base64_url_decode(str) { | ||
var output = str.replace(/-/g, "+").replace(/_/g, "/"); | ||
switch (output.length % 4) { | ||
case 0: | ||
break; | ||
case 2: | ||
output += "=="; | ||
break; | ||
case 3: | ||
output += "="; | ||
break; | ||
default: | ||
throw "Illegal base64url string!"; | ||
} | ||
try { | ||
return b64DecodeUnicode(output); | ||
} catch (err) { | ||
return atob(output); | ||
} | ||
} | ||
function InvalidTokenError(message) { | ||
this.message = message; | ||
} | ||
InvalidTokenError.prototype = new Error(); | ||
InvalidTokenError.prototype.name = "InvalidTokenError"; | ||
function index(token, options) { | ||
if (typeof token !== "string") { | ||
throw new InvalidTokenError("Invalid token specified"); | ||
} | ||
options = options || {}; | ||
var pos = options.header === true ? 0 : 1; | ||
try { | ||
return JSON.parse(base64_url_decode(token.split(".")[pos])); | ||
} catch (e) { | ||
throw new InvalidTokenError("Invalid token specified: " + e.message); | ||
} | ||
} | ||
export default index; | ||
export { InvalidTokenError }; | ||
function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,a=0,i=0,c="";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";export default o;export{n as InvalidTokenError}; | ||
//# sourceMappingURL=jwt-decode.esm.js.map |
{ | ||
"name": "jwt-decode", | ||
"version": "3.0.0-beta.2", | ||
"version": "3.0.0", | ||
"description": "Decode JWT tokens, mostly useful for browser applications.", | ||
@@ -5,0 +5,0 @@ "main": "build/jwt-decode.cjs.js", |
@@ -1,7 +0,17 @@ | ||
**jwt-decode** is a small browser library that helps decoding JWTs token which are Base64Url encoded. | ||
## **jwt-decode** is a small browser library that helps decoding JWTs token which are Base64Url encoded. | ||
**IMPORTANT:** This library doesn't validate the token, any well formed JWT can be decoded. You should validate the token in your server-side logic by using something like [express-jwt](https://github.com/auth0/express-jwt), [koa-jwt](https://github.com/stiang/koa-jwt), [Owin Bearer JWT](https://github.com/michaelnoonan/Auth0-Owin-JwtBearerAuthentication), etc. | ||
--- | ||
**Warning: When upgrading from version `2` to `3`, there's a potentially breaking change** | ||
If you've previously imported the library as `import * as jwt_decode from 'jwt-decode'`, you'll have to change your import to `import jwt_decode from 'jwt-decode';`. | ||
--- | ||
## Installation | ||
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fauth0%2Fjwt-decode?ref=badge_shield) | ||
Install with NPM or Yarn. | ||
@@ -39,2 +49,9 @@ | ||
## Use as a CommonJS package | ||
```javascript | ||
const jwt_decode = require('jwt-decode'); | ||
... | ||
``` | ||
## Include with a script tag | ||
@@ -67,1 +84,8 @@ | ||
This project is licensed under the MIT license. See the [LICENSE](LICENSE) file for more info. | ||
[browserify]: http://browserify.org | ||
[webpack]: http://webpack.github.io/ | ||
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fauth0%2Fjwt-decode?ref=badge_large) | ||
======= |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
10
11.11%0
-100%89
34.85%28560
-13.63%119
-59.11%