diff --git a/frontend/src/components/Login.vue b/frontend/src/components/Login.vue
index 82381bde13586a956f8e95cc83058070bc0c0321..3d5f2336a0788e1554d7bf76c28ec7c1a727f335 100644
--- a/frontend/src/components/Login.vue
+++ b/frontend/src/components/Login.vue
@@ -63,10 +63,10 @@
         this.loading = true
         this.getJWTToken(this.credentials).then(() => {
           this.loading = false
-          this.$router.push('/student/')
           this.getExamModule()
           this.getUserRole()
           this.getJWTTimeDelta()
+          this.$router.push('/student/')
         }).catch(() => { this.loading = false })
       }
     }
diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js
index 2b6e0b9a6d9dbeb5cbba032d312640428c9491ce..849fbf66c4d47a38992f6ea97e5dcf25776d7966 100644
--- a/frontend/src/router/index.js
+++ b/frontend/src/router/index.js
@@ -63,6 +63,8 @@ router.beforeEach((to, from, next) => {
   } else {
     const now = new Date()
     if (now - store.state.logInTime > store.state.jwtTimeDelta * 1000) {
+      console.log(now)
+      console.log(store.state.logInTime)
       store.dispatch('logout').then(() => {
         store.commit('API_FAIL', 'You\'ve been logged out due to inactivity')
         next('/')
diff --git a/frontend/src/store/api.js b/frontend/src/store/api.js
index 2be0ed429deada34d26903031a564dbf31afde6a..c1e523645706a4f2c07c2282906e138186c67d4f 100644
--- a/frontend/src/store/api.js
+++ b/frontend/src/store/api.js
@@ -1,7 +1,8 @@
 import axios from 'axios'
 
 let ax = axios.create({
-  baseURL: 'http://localhost:8000/'
+  baseURL: 'http://localhost:8000/',
+  headers: {'Authorization': 'JWT ' + sessionStorage.getItem('jwtToken')}
 })
 
 export default ax
diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js
index 214908640b8247ea79825a1656806e5b5318d392..7d99d56b21ba722b6ed7343127b593cc7d88c29a 100644
--- a/frontend/src/store/store.js
+++ b/frontend/src/store/store.js
@@ -14,12 +14,12 @@ const store = new Vuex.Store({
     studentPage
   },
   state: {
-    token: '',
-    loggedIn: false,
-    logInTime: {},
-    username: '',
-    jwtTimeDelta: 0,
-    userRole: '',
+    token: sessionStorage.getItem('jwtToken'),
+    loggedIn: !!sessionStorage.getItem('jwtToken'),
+    logInTime: sessionStorage.getItem('logInTime'),
+    username: sessionStorage.getItem('username'),
+    jwtTimeDelta: sessionStorage.getItem('jwtTimeDelta'),
+    userRole: sessionStorage.getItem('userRole'),
     error: '',
     examInstance: ''
   },
@@ -34,21 +34,26 @@ const store = new Vuex.Store({
     },
     'SET_JWT_TOKEN': function (state, token) {
       state.token = token
-      state.logInTime = new Date()
-      ax.defaults.headers.common['Authorization'] = 'JWT ' + token
+      state.logInTime = Date.now()
+      ax.defaults.headers['Authorization'] = 'JWT ' + token
+      sessionStorage.setItem('jwtToken', token)
+      sessionStorage.setItem('logInTime', state.logInTime)
     },
     'SET_JWT_TIME_DELTA': function (state, timeDelta) {
       state.jwtTimeDelta = timeDelta
+      sessionStorage.setItem('jwtTimeDelta', timeDelta)
     },
     'LOGIN': function (state, username) {
       state.loggedIn = true
       state.username = username
+      sessionStorage.setItem('username', username)
     },
     'LOGOUT': function (state) {
       state.loggedIn = false
     },
     'SET_USER_ROLE': function (state, userRole) {
       state.userRole = userRole
+      sessionStorage.setItem('userRole', userRole)
     },
     'SET_EXAM_INSTANCE': function (state, examInstance) {
       state.examInstance = examInstance