Как установить токен axios на стороне клиента в init сервера nuxt? - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь аутентифицировать своего пользователя при загрузке страницы. Итак, у меня есть следующий код:

actions: {
      nuxtServerInit ({dispatch, commit, app}, context) {
        return new Promise((resolve, reject) => {
          const cookies = cparse.parse(context.req.headers.cookie || '')
          if (cookies.hasOwnProperty('x-access-token')) {
            app.$axios.setToken(cookies['x-access-token'], 'Bearer')
            api.auth.me2()
              .then(result => {
                commit('setUser', result.data.user)
                resolve(true)
              })
              .catch(error => {
                commit('resetUser')
                resetAuthToken()
                resolve(false)
              })
          } else {
            resetAuthToken()
            resolve(false)
          }
        })
      }

Однако у меня есть следующая ошибка: Не удается прочитать свойство $ axios неопределенного. Что не так с моим кодом?

Ответы [ 2 ]

0 голосов
/ 14 августа 2018

Другой способ. Вы можете передать app во втором аргументе, так что

nuxtServerInit ({dispatch, commit}, {app}) {

Полный код:

actions: {
  nuxtServerInit ({dispatch, commit}, {app}) {
    return new Promise((resolve, reject) => {
      const cookies = cparse.parse(context.req.headers.cookie || '')
      if (cookies.hasOwnProperty('x-access-token')) {
        app.$axios.setToken(cookies['x-access-token'], 'Bearer')
        api.auth.me2()
          .then(result => {
            commit('setUser', result.data.user)
            resolve(true)
          })
          .catch(error => {
            commit('resetUser')
            resetAuthToken()
            resolve(false)
          })
      } else {
        resetAuthToken()
        resolve(false)
      }
    })
  }
}
0 голосов
/ 27 июня 2018

Приложение должно исходить из контекста, например из второго аргумента. Таким образом, ваш код должен быть

context.app.$axios.setToken(cookies['x-access-token'], 'Bearer')
...