我有一个使用 nuxt-auth 的 nuxt 应用程序,在本地主机上一切正常,但是在实时服务器上部署时,当我单击登录按钮时,我不断收到此错误
Uncaught (in promise) TypeError: Cannot use 'in' operator to search for 'token' in
当我单击注册按钮时,我从控制台获得了一个令牌
我似乎无法找到问题的根源在我的本地机器上一切正常
这是我的登录组件:
<script>
export default {
middleware: "auth",
auth: "guest",
layout: "none",
data() {
return {
email: "",
password: ""
};
},
methods: {
async onLogin() {
try {
this.$auth.loginWith("local", {
data: {
email: this.email,
password: this.password
}
});
this.$router.push("/");
} catch (err) {
console.log(err);
}
}
}
};
</script>
注册组件
<script>
export default {
middleware: "auth",
auth: "guest",
layout: "none",
data() {
return {
name: "",
email: "",
password: ""
};
},
methods: {
async onSignup() {
try {
let data = {
name: this.name,
email: this.email,
password: this.password
};
let response = await this.$axios.$post("api/auth/signup", data);
console.log(response);
if (response.success) {
this.$auth.loginWith("local", {
data: {
email: this.email,
password: this.password
}
});
this.$router.push("/");
}
} catch (err) {
console.log(err);
}
}
}
};
在我的 nuxt.config.js 我有:
const URL =
'https://localhost:5000'
export default {
mode: 'spa',
// Global page headers: https://go.nuxtjs.dev/config-head
head: {
title: 'client',
script: [{ src: 'https://js.stripe.com/v3' }],
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: '' },
{ name: 'format-detection', content: 'telephone=no' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'stylesheet', href: '/css/font-awesome/css/all.css' },
{ rel: 'stylesheet', href: '/css/default.css' }
]
},
// Global CSS: https://go.nuxtjs.dev/config-css
css: [],
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [{ src: '~/plugins/localStorage.js', mode: 'client' }],
// Auto import components: https://go.nuxtjs.dev/config-components
components: true,
// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
buildModules: ['nuxt-compress'],
// Modules: https://go.nuxtjs.dev/config-modules
modules: [
// https://go.nuxtjs.dev/bootstrap
'bootstrap-vue/nuxt',
// https://go.nuxtjs.dev/axios
'@nuxtjs/axios',
// https://go.nuxtjs.dev/pwa
'@nuxtjs/pwa',
'@nuxtjs/auth'
],
// Axios module configuration: https://go.nuxtjs.dev/config-axios
axios: {
proxy: true,
baseURL: "https://localhost:5000",
browserBaseURL: "https://localhost:5000",
},
proxy: {
'/api': URL
},
// PWA module configuration: https://go.nuxtjs.dev/pwa
pwa: {
manifest: {
lang: 'en'
}
},
// Build Configuration: https://go.nuxtjs.dev/config-build
build: {
babel: {
compact: true
},
performance: {
hints: false,
maxEntrypointSize: 512000,
maxAssetSize: 512000
}
},
auth: {
strategies: {
local: {
token: {
property: 'token',
global: true,
// required: true,
// type: 'Bearer'
},
endpoints: {
login: { url: '/api/auth/login', method: 'post', propertyName: "token" },
// logout: { url: '/api/auth/logout', method: 'post' },
user: { url: '/api/auth/user', method: 'get' },
logout: true
},
tokenRequired: true,
tokenType: 'Token',
tokenName: 'Authorization'
}
}
}
}
在我的本地计算机上使用此配置一切正常,但在实时部署到 firebase 时无法正常工作