dima9595
@dima9595
Junior PHP

Почему «Cannot read property 'authCheck' of undefined»?

Уже запарился...Переписываю немного свой старенький проект. После небольших изменений выдаётся следующая ошибка:
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
            }
        }
    })
}


Заранее спасибо!
  • Вопрос задан
  • 286 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы