100 lines
2.7 KiB
JavaScript
100 lines
2.7 KiB
JavaScript
import {createApp} from 'vue';
|
|
import App from './App.vue';
|
|
import {createStore} from 'vuex';
|
|
import BootstrapVue3 from 'bootstrap-vue-3';
|
|
import createPersistedState from "vuex-persistedstate";
|
|
import { VueCookieNext } from 'vue-cookie-next'
|
|
|
|
|
|
import 'bootstrap/dist/css/bootstrap.css'
|
|
import 'bootstrap-vue-3/dist/bootstrap-vue-3.css'
|
|
import router from "./router/index";
|
|
|
|
// Create a new store instance.
|
|
const store = createStore({
|
|
state() {
|
|
return {
|
|
authenticated: false,
|
|
jSessionId: null,
|
|
isAndroid: false,
|
|
userName: null,
|
|
userIdCode: null,
|
|
}
|
|
},
|
|
mutations: {
|
|
setLoggedIn(state, isLoggedIn) {
|
|
state.authenticated = isLoggedIn;
|
|
},
|
|
setSessionId(state, sessionId) {
|
|
state.jSessionId = sessionId;
|
|
},
|
|
setIsAndroid(state, isAndroid) {
|
|
state.isAndroid = isAndroid;
|
|
},
|
|
setUserName(state, userName) {
|
|
state.userName = userName;
|
|
},
|
|
setIdCode(state, idCode) {
|
|
state.userIdCode = idCode;
|
|
}
|
|
},
|
|
actions: {
|
|
fetchSessionId(context, sessionId) {
|
|
context.commit("setSessionId", sessionId);
|
|
},
|
|
setLoggedIn(context, isLoggedIn) {
|
|
context.commit("setLoggedIn", isLoggedIn);
|
|
},
|
|
setIsAndroid(context, isAndroid) {
|
|
context.commit("setIsAndroid", isAndroid);
|
|
},
|
|
setUserName(context, userName) {
|
|
context.commit("setUserName", userName);
|
|
},
|
|
setUserIdCode(context, userIdCode) {
|
|
context.commit("setIdCode", userIdCode);
|
|
}
|
|
},
|
|
getters: {
|
|
getAuthenticated: state => {
|
|
return state.authenticated;
|
|
},
|
|
getSessionId: state => {
|
|
return state.jSessionId;
|
|
},
|
|
getIsAndroid: state => {
|
|
return state.isAndroid;
|
|
},
|
|
getUserName: state => {
|
|
return state.userName;
|
|
},
|
|
getUserIdCode: state => {
|
|
return state.userIdCode;
|
|
},
|
|
},
|
|
plugins: [createPersistedState()],
|
|
})
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
if (to.matched.some(record => record.meta.requiresAuth)) {
|
|
// this route requires auth, check if logged in
|
|
// if not, redirect to login page.
|
|
if (!store.state.authenticated) {
|
|
next({name: 'Login'})
|
|
} else {
|
|
next() // go to wherever I'm going
|
|
}
|
|
} else {
|
|
next() // does not require auth, make sure to always call next()!
|
|
}
|
|
})
|
|
|
|
const app = createApp(App)
|
|
app.use(BootstrapVue3)
|
|
app.use(router)
|
|
app.use(store)
|
|
app.use(VueCookieNext);
|
|
app.mount('#app')
|
|
|
|
VueCookieNext.config({ expire: '7d' })
|