aboutsummaryrefslogtreecommitdiff
path: root/app/js
diff options
context:
space:
mode:
Diffstat (limited to 'app/js')
-rw-r--r--app/js/jwt.js22
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