Уже запарился...Переписываю немного свой старенький проект. После небольших изменений выдаётся следующая ошибка:
Cannot read property 'authCheck' of undefined
Код, в котором этот метод вызывается:
// Главные модули
import Vue from 'vue'
import VueRouter from 'vue-router'
import VeeValidate from 'vee-validate'
import axios from 'axios'
import VueAxios from 'vue-axios'
// Второстепенные модули
import App from './App.vue'
import Routes from './routes.js'
// Модули для работы с данными
import AuthUser from './packages/AuthUser.js'
// Store
import AuthStore from './store/AuthStore.js'
import ConfigStore from './store/ConfigStore.js'
// Styles
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.css'
// Использование главных модулей
Vue.use(VueRouter)
Vue.use(VeeValidate)
Vue.use(VueAxios, axios)
Vue.use(AuthUser)
// Использование стилей
Vue.use(Vuetify)
Routes.beforeEach(
(to, from, next) => {
if(to.matched.some(record => record.meta.isGuest)){
if(this.$AuthUser.authCheck()){
next({
path: '/'
})
} else next()
}else if(to.matched.some(record => record.meta.isAuth)){
if(!this.$AuthUser.authCheck()){
next({
path: '/auth/login'
})
}else{
next()
}
} else next()
}
)
Vue.config.productionTip = false
new Vue({
el: '#app',
render: h => h(App),
router: Routes,
store: { AuthStore, ConfigStore }
})
Код, где описан метод authCheck() - AuthUser:
/**
* AuthUser - методы работы с данными пользователя
* @param Vue
* @returns {*}
*/
export default function(Vue){
Vue.AuthUser = {
// Получаем токен пользователя
getAuth(data){
return Vue.axios.post('/oauth/token', data)
.then(response => {
return response.data
})
},
// Получаем данные пользователя
getUser: function(){
if(this.authCheck()){
return this.$store.AuthStore.state.user
}else{
return false
}
},
// Проверяем пользователя, авторизован ли он или нет
authCheck(){
if(this.$store.AuthStore.state.isAuth){
return true
}
return false
},
// Выходим из аккаунта
logoutAuth(){
if(this.$store.state.isAuth){
this.$store.AuthStore.commit('logout')
}
}
}
Object.defineProperties(Vue.prototype, {
$AuthUser: {
get: () => {
return Vue.AuthUser
}
}
})
}
Заранее спасибо!