【问题标题】:nuxtServerInit does not receive auth cookiesnuxtServerInit 不接收身份验证 cookie
【发布时间】:2020-09-12 18:02:27
【问题描述】:

我有 nuxtServerInit 函数,它应该接收所有用户的浏览器数据,包括 cookie,但它不接收 auth 模块(但不是每次!)cookie(我说的是 JWT Bearer 令牌)。

async nuxtServerInit(store, { req }) {
    console.log(req.headers.cookie);
}

在正确的情况下,它将显示如下内容: i18n_redirected=en; auth.strategy=local; auth._token.local=Bearer%20eyJhbG*******

但在其他浏览器(例如edge)中,只有在浏览器重新启动后,它才会输出:i18n_redirected=en。但是,如果您更新站点或在另一个选项卡中打开它就可以了。

我不明白为什么。它的工作方式如此随机......例如,在我的主浏览器(chrome)中,它不会在我每次启动时发送 cookie(正如我之前所说),但是,当我更新页面时,它只会发送所有内容美好的。我试图故意重复这个错误,它工作了几次,然后停止了......但它在 Edge 浏览器中不断工作。 cookie 仍然像以前一样存在,但 nuxt 只是不接收它们。我没有一些特殊的 cookie 插件,一切都按其默认选项运行...

这是某种缓存还是什么?请有人帮我解决这个问题。

【问题讨论】:

    标签: vue.js authentication cookies nuxt.js nuxtserverinit


    【解决方案1】:

    事实证明 Nuxt Auth 模块将其 cookie expires 设置为空字符串,因此它毕竟只是基于会话的 cookie,不会根据 axios 请求发送到服务器。我必须手动将过期日期设置为nuxt.config.js 中的 auth 模块 cookie 设置:

    auth: {
      ...
      cookie: {
        options: {
          expires: new Date(new Date().getTime()+20000000000).getTime(), //thats today + a year
          maxAge: 31622400
        }
      }
    },
    

    我仍然认为它不自行设置到期日期是不对的。 nuxt 中所有东西的酷之处在于,许多东西都是开箱即用的,auth 模块不应该像很少使用的 nuxt 的本机功能那样工作。不得不为此浪费3个小时:(

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2023-04-05
      • 2016-03-02
      相关资源
      最近更新 更多