我创建了一个使用 Auth0 作为登录提供程序的 Nuxt 应用程序。当您登录时,您将被重定向到回调页面,然后 auth 模块接管并将登录信息保存在状态中。一切都在开发模式下完美运行,但是一旦我为生产生成代码,auth 模块就不再对回调做出反应并且您没有登录。在目标服务器或静态中生成没有效果。我设置为模式=通用。我尝试启用 SSR 或专门禁用它,但没有效果。我正在使用
"nuxt": "^2.15.4"
"@nuxtjs/auth": "^4.9.1",
我已经与这件事斗争了一个星期,我看到许多讨论这个问题的线程,但没有人提供解决方案。这真的是 Nuxt 没有处理的问题吗?如果它无法在生产中处理身份验证,那几乎会扼杀平台的实用性......有没有人有办法解决这个问题?
我愿意发布我的代码,如果它有助于解决这个问题。
编辑:这是我的 nuxt.config.js 文件:
export default {
mode: 'universal',
target: 'server',
css: [],
plugins: [
{ src: '~/plugins/vue-debounce.js' },
{ src: '~/plugins/modal-popup.js', ssr: false },
{ src: '~/plugins/editor.js', ssr: false },
],
components: true,
buildModules: ['@nuxtjs/eslint-module', '@nuxtjs/fontawesome'],
fontawesome: {
component: 'fa',
suffix: true,
icons: {
solid: ['faCaretDown', 'faCaretRight', 'faCaretLeft'],
regular: ['faFileAlt'],
},
},
modules: [
'@nuxtjs/axios',
'@nuxtjs/auth',
],
axios: {
baseURL: 'http://localhost:9000/api/',
headers: {
common: {
Accept: 'application/json',
},
},
},
auth: {
strategies: {
auth0: {
domain: '<my domain>.eu.auth0.com',
client_id: '<client id>',
audience: 'https://<my domain>.eu.auth0.com/api/v2/',
},
},
redirect: {
callback: '/callback/',
logoutRedirectUri: '/login'
},
},
build: {
transpile: [],
},
}
我发现了问题。我在 Axios 中实现了一个非标准头文件,如下所示:
axios: {
baseURL: 'http://localhost:9000/api/',
headers: {
common: {
Accept: 'application/json',
authentication: "<UUID code>"
},
},
}
我这样做是为了保护与服务器的通信,直到我运行了 Auth0,但我忘记删除它。
一旦我摆脱了这个标题,它就开始按预期工作。我不确定为什么这会导致它在开发人员模式下工作而不是在生成的代码中工作,但是删除该行使其在两者中工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句