Я новичок в 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;
});
},