简单的Vuejs路由防护仅包含密码

时间:2019-10-10 22:35:44

标签: vue.js vue-router

因此,我试图做一个路由防护,在重定向到仪表板之前会提示用户输入密码,但是通过所有设置,我仍然可以通过在地址栏中键入/ dashboard来访问仪表板。 我所拥有的:

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/dashboard',
      name: 'dashboard',
      component: home,
      props: true,
      beforeEnter: (to, from, next) =>{
        if (to.params.senha == to.params.mestre){
          next()
        } else{
          next({name: 'login'})
        }
      }

其中“ senha”是用户输入,“ mestre”是登录组件数据中存储的变量主密码。

这就是登录组件发送到路由器的内容

toApp() {
      this.$router.push({
        name: "dashboard",
        params: { senha: this.senha, mestre: this.mestre }
      });

我知道这不是用于身份验证或任何相关内容的安全方法,对于非常简单的应用程序来说,这非常简单。

我想念什么?

1 个答案:

答案 0 :(得分:1)

以上逻辑工作正常,没有发现错误

尝试对路由器推送和测试中的值进行硬编码

this.$router.push({
        name: "dashboard",
        params: { senha: "senha", mestre: "senha" }
      });

如果正常,请在路由之前尝试在控制台中打印该值

console.log(this.senha, this.mestre);
this.$router.push({
        name: "dashboard",
        params: { senha: this.senha, mestre: this.mestre }
      });

如果仍然发现任何问题,请尝试检查控制台是否有任何错误