首页 > 解决方案 > 在 nuxt 中使用通用模式时是否应该使用 asyncData 选项?

问题描述

我目前正在使用 nuxt 开发一个项目。

然后,身份验证有问题。

每当我使用中间件移动页面时,我都会从 cookie 中取出令牌,并将其放入 axios 默认令牌中。

我对这个流程有疑问,因为我使用的是通用模式。

因为移动页面时运行客户端的中间件,刷新时运行服务器的中间件,所以token分别存储在客户端的axios默认头和服务器的axios默认头中。

所以刷新后我无法从客户端获取数据。

这可以使用 asyncData 解决,但是是否应该将所有数据都带到 asyncData 中?

标签: single-page-applicationnuxt.jsserver-side-rendering

解决方案


您仍然可以访问服务器中间件中的 cookie,而无需在客户端。cookie 实际上在您的请求标头中。

中间件看起来像这样:

要访问请求标头,您可以破坏 nuxt 上下文

 export default function({ req }){
    console.log(req.headers.cookie);
 }

推荐阅读