diff options
Diffstat (limited to 'app/js/jwt.js')
-rw-r--r-- | app/js/jwt.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/js/jwt.js b/app/js/jwt.js new file mode 100644 index 0000000..43c2e6c --- /dev/null +++ b/app/js/jwt.js @@ -0,0 +1,22 @@ +function parseJwt (token) { + var base64Url = token.split('.')[1]; + var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); + var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); + + return JSON.parse(jsonPayload); +} + +function isJwtExpired (token) { + var jwt = parseJwt(token); + return jwt.exp < Date.now() / 1000; +} + +async function refreshAccessToken (refreshToken) { + const data = await fetch('/api/refresh', { + method: 'POST', + headers: {'Authorization': 'Bearer ' + refreshToken} + }); + return data.access_token; +}
\ No newline at end of file |