NuxtJs - не удается прочитать свойства 'заголовки' неопределенных - PullRequest
0 голосов
/ 15 мая 2018

Я новичок в NuxtJs. Я пытаюсь реализовать внешний вызов API с помощью axios, который я получаю, и сохраняю его в cookie. Все хорошо работает в разработке. Но когда я пытаюсь запустить npm, то сгенерируйте ошибки, которые я не знаю, что делать.

Когда я удаляю nuxtSeverInit, npm run generate работает гладко. И после некоторого исследования я думаю, что nuxtServerInit, который я использую, не должен использоваться. Может кто-нибудь, пожалуйста, скажите мне, как заставить это работать.

Это первый проект в новой компании, поэтому я пытаюсь проявить себя. Пожалуйста, помогите мне с этим. Будете ли вы.

Нажмите здесь для изображения, которое показывает ошибку, которая появляется после запуска npm, генерирует

Это файл store / index.js

  import Vuex from 'vuex'
  var cookieparser = require('cookieparser')

  const createStore = () => {
      return new Vuex.Store({
           state: {
              auth: null,
           },
           mutations: {
              update (state, data) {
                 state.auth = data
              }
           },
           actions: {
              nuxtServerInit ({ commit }, { req }) {
                     let accessToken = null
                     if (req.headers.cookie) {
                         var parsed = cookieparser.parse(req.headers.cookie)
                         if(parsed){
                            accessToken = parsed.auth
                         }

                      }  
                     commit('update', accessToken)
              },
           }
       })
   }
  export default createStore

файл middleware / authenticated.js

   export default function ({ store, redirect }) {
      // If the user is not authenticated
      if (!store.state.auth) {
        return redirect('/login')
      }
   }

файл middleware / notAuthenticated.js

   export default function ({ store, redirect }) {
      // If the user is authenticated redirect to home page
      if (store.state.auth) {
         return redirect('/app/dashboard')
      }
    }

файл login.vue

  validateBeforeSubmit() {
    this.$validator.validateAll().then((result) => {
      if (result) {
        this.button_title = 'One moment ...';
        let submitted_user_data = {
          'username': this.emailAddress,
          'client_id': this.user_uuid,
          'password': this.password,
        }

        MerchantServices.do_user_login(submitted_user_data)
        .then(response => {
            let access_token = response.data.access_token;
            this.postLogin(access_token);

        })
        .catch(error => {
            this.$refs.invalid_credentials.open();
            this.button_title = 'Sign in'
        });
        return;
      }


    });
  },
  postLogin: function(access_token_val) {
    if(access_token_val != ''){
      setTimeout(() => {
        const auth = {
          accessToken: access_token_val
        }
        this.$store.commit('update', auth) 
        Cookie.set('auth', auth) 
        this.$refs.invalid_credentials.open();
        this.button_title = 'Sign in'
        this.$router.push('/app/dashboard')
      }, 1000)
    }else{
      alert('hello')
    }

  },

и последний пользовательский вызов API, который также возвращает токен.

    do_user_login(user){
          var user_details = 'username='+user.username+'&client_id='+ user.client_id +'&grant_type=password&password='+user.password+''
          return axios.post('myapiurl', user_details )
         .then(response =>  {
             return response;
          });
},
...