Постоянная проблема входа в приложение Vuejs - PullRequest
0 голосов
/ 31 января 2019

Я использую эту библиотеку для управления ролями и разрешениями в Vue.
https://github.com/anthonygore/vue-router-user-roles

Они предоставляют этот бит кода:

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import VueRouterUserRoles from "vue-router-user-roles";

Vue.use(VueRouterUserRoles, router);

// This would usually be an AJAX call to the server or a cookie check
// Let's assume the user hasn't logged in yet so they're a guest for now.
let authenticate = Promise.resolve({ role: "guest" });

authenticate.then(user => {
  Vue.prototype.$user.set(user);
  new Vue({
    render: h => h(App),
    router
  }).$mount("#app");
});


Я использую axios, чтобы публиковать сообщения в своем бэкэнде и получать данные пользователя на основе токена:

const token = localStorage.getItem('user-token')
if (token) {
  axios.defaults.headers.common['Authorization'] = 'Bearer ' + token
  axios.post('/api/details').then(response => {
    this.$store.commit('changeRole','registered')
    this.$store.commit('changeName', response.data.success.name)
    this.$store.commit('changeEmail', response.data.success.email)
    this.$store.commit('changeId', response.data.success.id)
    let user = {
      role: this.$store.getters.role,
      name: this.$store.getters.name,
      email: this.$store.getters.email,
      id: this.$store.getters.id
    }
    Vue.prototype.$user.set(user)
  })
}else{
  this.$store.commit('changeRole', 'guest')

Сведения о пользователе, сохраненные в пользовательской переменной, недоступны для моих компонентов Vue, если я попытаюсь вызвать это. $ User.get (). Id.
Как бы я решил это?Я должен отметить, что я новичок в Vuej. Также бэкэнд - Laravel 5.7.

Спасибо.

...