首页 > 解决方案 > 将 Nuxt-Auth 与 Cookie 一起使用

问题描述

我正在尝试让 Nuxt.js 使用 cookie 身份验证。我正在使用带有 cookie 设置的 nuxt-auth。带有 Passport 的 Laravel 后端。

我需要使用 Cookies 的原因是因为我计划将 nuxt 项目放在我的主域名上(使用登录名),然后将 app.mydomainname.com 用于实际应用程序。主网站也有使用身份验证的面向公众的页面。

这是我对 nuxt-auth 的 nuxt.js 的配置:

  auth: {
    local: false,
    redirect: {
      login: "/login",
      logout: "/login",
      callback: "/login",
      home: false,
    },
    strategies: {
      cookie: {
        token: {
          property: "data.access_token",
        },
        user: {
          property: "data",
        },
        endpoints: {
          login: {
            url: "v1/auth/login",
            method: "post",
            propertyName: "access_token",
          },
          logout: { url: "/v1/auth/logout", method: "delete" },
          user: { url: "/v1/settings", method: "get" },
        },
      },
    },
  },

登录工作正常,但是当我查看我的 editthiscookie chrome 插件时,cookie 没有设置,因此对 /settings 的调用不起作用:

FineMyCookie Chrome 插件

如您所见,cookie 只是设置为 true 而不是访问令牌。

任何有关配置的帮助都会有所帮助。

谢谢

标签: vue.jsnuxt.jsnuxt-auth

解决方案


弄清楚了。我必须在令牌配置中设置required: true和设置。type: "Bearer"

所以它现在看起来像这样:

auth: {
    redirect: {
      login: "/login",
      logout: "/login",
      callback: "/login",
      home: false,
    },
    strategies: {
      local: false,
      cookie: {
        token: {
          property: "data.access_token",
          required: true,
          type: "Bearer",
        },
        user: {
          property: "data",
        },
        endpoints: {
          login: {
            url: "v1/auth/login",
            method: "post",
          },
          logout: { url: "/v1/auth/logout", method: "delete" },
          user: { url: "/v1/settings", method: "get" },
        },
      },
    },
  },

推荐阅读