成功登录后,仍然可以访问Nuxt JS登录路由

时间:2019-07-14 05:20:20

标签: vuejs2 middleware nuxt.js nuxt

我试图在过去几周内解决此问题。我跟随了几个系列。一种在youtube上,另一种在代码课程上。两者都显示了验证用户身份的正确方法,但是一旦用户登录,登录路径仍然可以访问。我会尽量提供更多信息。

这是我的nuxt.config.js

 auth: {
    plugins: ["~plugins/auth.js"],
    strategies: {
      local: {
        endpoints: {
          login: {
            url: "auth/login",
            method: "post",
            propertyName: "meta.token"
          },
          user: {
            url: "auth/me",
            method: "get",
            propertyName: "data"
          },
          logout: {
            url: "auth/logout",
            method: "post"
          },
          redirect: {
            login: "/auth/login",
            logout: "/",
            home: "/",
            callback: "/"
          },
          watchLoggedIn: true,
          rewriteRedirects: true
        }
      }
    }
  },

这是我的login.vue

export default {
  middleware: ["guest"],
  auth: "guest",
  name: "login",
  data() {
    return {
      form: {
        email: "",
        password: ""
      }
    };
  },
  methods: {
    async login() {
      await this.$auth.loginWith("local", {
        data: this.form
      });
      this.$router.push({
        path: this.$route.query.redirect || "/dashboard"
      });
    }
  }
};

登录后仍然可以访问。

1 个答案:

答案 0 :(得分:-1)

您配置错误。其所有内容均在文档中进行了描述。例如middleware

没有这样的东西

data[0].price

与您的代码相同。您可以在文档中看到称为auth的中间件。因此,您需要设置

  

每条路线的设置:

middleware: ["guest"],
     

在nuxt.config.js中进行全局设置:

export default {
  middleware: 'auth'
}