Vue.js Nuxt/Vue-如何在呈现页面之前运行代码?

Vue.js Nuxt/Vue-如何在呈现页面之前运行代码?,vue.js,nuxt.js,Vue.js,Nuxt.js,我正在构建一个Nuxt应用程序(SSR),它在后端使用Django,用于验证使用标准Django会话身份验证的用户 在呈现用户时,我需要将用户重定向到登录页面,这一点我完全被卡住了。因此,我需要做的是向Django后端发送一个请求,该请求将返回用户是否经过身份验证。在呈现页面中的HTML之前,是否有任何方法可以执行代码 我的尝试: 中间件:我尝试使用中间件,但由于某些原因,Nuxt中间件无法与Axios配合使用。当我从中间件发送请求时,它不会随请求一起发送任何Cookie,因此我将始终注销(即使

我正在构建一个Nuxt应用程序(SSR),它在后端使用Django,用于验证使用标准Django会话身份验证的用户

在呈现用户时,我需要将用户重定向到登录页面,这一点我完全被卡住了。因此,我需要做的是向Django后端发送一个请求,该请求将返回用户是否经过身份验证。在呈现页面中的HTML之前,是否有任何方法可以执行代码

我的尝试:

中间件:我尝试使用中间件,但由于某些原因,Nuxt中间件无法与Axios配合使用。当我从中间件发送请求时,它不会随请求一起发送任何Cookie,因此我将始终注销(即使在登录时)。这是Nuxt的问题,而不是后端的问题,因为如果我从一个简单的页面尝试相同的请求,它将毫无问题地工作:

export default async function (context) {
  axios.defaults.withCredentials = true;
  return axios({
    method: 'get',
    url: 'http://127.0.0.1:8000/checkAuth',
    withCredentials: true,
  }).then(function (response) {
    //Check if user is authenticated - response is always False
  }).catch(function (error) {
    //Handle error
  });
}

您可以使用插件来实现这一点。首先,您必须在/plugins文件夹中创建一个.js文件。然后必须在nuxt.config.js中包含插件[]。按照本指南获取更多信息

您使用的是SSR(通用)还是SPA?我使用的是SSR,很抱歉没有包含它,我现在正在编辑我认为,因为中间件是在服务器端执行的,所以您无法访问客户端上存在的cookies。事实上,在查看Github之后,这似乎是个问题。如果我的应用程序是SPA,中间件会在客户端执行吗?你知道一种不用中间件的方法吗?