aboutsummaryrefslogtreecommitdiffstats
path: root/src/store
diff options
context:
space:
mode:
Diffstat (limited to 'src/store')
-rw-r--r--src/store/index.js14
-rw-r--r--src/store/module-user/actions.js4
-rw-r--r--src/store/module-user/getters.js1
-rw-r--r--src/store/module-user/index.js12
-rw-r--r--src/store/module-user/mutations.js17
-rw-r--r--src/store/module-user/state.js4
6 files changed, 52 insertions, 0 deletions
diff --git a/src/store/index.js b/src/store/index.js
new file mode 100644
index 0000000..1bc6b7d
--- /dev/null
+++ b/src/store/index.js
@@ -0,0 +1,14 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+import user from './module-user'
+
+Vue.use(Vuex)
+
+const store = new Vuex.Store({
+ modules: {
+ user
+ }
+})
+
+export default store
diff --git a/src/store/module-user/actions.js b/src/store/module-user/actions.js
new file mode 100644
index 0000000..5e5d9c6
--- /dev/null
+++ b/src/store/module-user/actions.js
@@ -0,0 +1,4 @@
+/*
+export const someAction = (state) => {
+}
+*/
diff --git a/src/store/module-user/getters.js b/src/store/module-user/getters.js
new file mode 100644
index 0000000..64241d1
--- /dev/null
+++ b/src/store/module-user/getters.js
@@ -0,0 +1 @@
+export const loggedIn = (state) => Boolean(state.decodedToken.username)
diff --git a/src/store/module-user/index.js b/src/store/module-user/index.js
new file mode 100644
index 0000000..b41a219
--- /dev/null
+++ b/src/store/module-user/index.js
@@ -0,0 +1,12 @@
+import state from './state'
+import * as getters from './getters'
+import * as mutations from './mutations'
+import * as actions from './actions'
+
+export default {
+ namespaced: true,
+ state,
+ getters,
+ mutations,
+ actions
+}
diff --git a/src/store/module-user/mutations.js b/src/store/module-user/mutations.js
new file mode 100644
index 0000000..e8f4799
--- /dev/null
+++ b/src/store/module-user/mutations.js
@@ -0,0 +1,17 @@
+import axios from 'axios'
+import jwtDecode from 'jwt-decode'
+import { LocalStorage } from 'quasar'
+
+export const setAuthToken = (state, { authToken }) => {
+ state.authToken = authToken
+ state.decodedToken = jwtDecode(authToken)
+ axios.defaults.headers.common['Authorization'] = `Bearer ${authToken}`
+ LocalStorage.set('authToken', authToken)
+}
+
+export const logout = (state) => {
+ state.authToken = null
+ state.decodedToken = {}
+ delete axios.defaults.headers.common['Authorization']
+ LocalStorage.remove('authToken')
+}
diff --git a/src/store/module-user/state.js b/src/store/module-user/state.js
new file mode 100644
index 0000000..b938620
--- /dev/null
+++ b/src/store/module-user/state.js
@@ -0,0 +1,4 @@
+export default {
+ authToken: null,
+ decodedToken: {},
+}