@nitra/jwt-decode
Version:
30 lines (27 loc) • 571 B
JavaScript
/**
* JWT Decode
*
* @param {String} token token
* @return {{}} decoded token
*/
function def(token) {
if (!token) {
return {}
}
try {
const base64Url = token.split('.')[1]
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')
const jsonPayload = decodeURIComponent(
atob(base64)
.split('')
.map(function (c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
})
.join('')
)
return JSON.parse(jsonPayload)
} catch (error) {
return {}
}
}
export default def