NuxtJs - 无法读取未定义的属性'headers'



我是NuxtJs的新手。我正在尝试使用axios实现外部API调用,我获得令牌并将其存储在cookie上。 在开发中一切正常。但是当我尝试运行 npm 运行生成时,它会给我错误,我不知道该怎么做。

当我删除nuxtSeverInit时,npm运行生成运行平稳。经过一些研究,我认为我正在使用的nuxtServerInit不应该被使用。谁能告诉我如何让它工作。

这是新公司的第一个项目,所以我试图证明自己。请帮我。你将。

单击此处查看显示 npm 运行生成后出现的错误的图像

这是存储/索引.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

中间件/经过身份验证.js文件

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

中间件/未经过身份验证.js文件

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

登录.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;
});
},

根据Nuxt Docsreqnuxt generate上不可用。 你应该使用nuxt构建,然后nuxt开始

相关内容

  • 没有找到相关文章

最新更新