未知的Vue路由器重定向

时间:2020-09-14 05:39:11

标签: firebase vue.js

http:// localhost:8080 /#/这是我打开的本地主机端口,但登录时重定向到http:// localhost:8080 /?#/。然后我必须再次登录才能将路由器转到http:// localhost:8080 /?#/ admin

问号的意义是什么

我正在使用Firebase身份验证

这是我的路由器索引

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/Home.vue";
import Admin from "../views/Admin.vue";
import ManageUsers from "../views/ManageUsers.vue";
import Funds from "../views/Funds.vue";
import CompleteDetails from "../views/CompleteDetails.vue";
import UserFunds from "../views/UserFunds.vue";
import ViewPost from "../views/ViewPost.vue";

import ResetPassword from "../views/ResetPassword.vue";


import Profile from "../views/Profile.vue";
import Overview from "../views/Overview.vue";
import Users from "../views/Users.vue";
import { fb } from "../firebase.js";
import AllUsers from "../views/Allusers.vue"

//User
import User from "../views/User.vue";
import MyProfile from "../views/MyProfile.vue";
import UserDashboard from "../views/Userdashboard.vue";

import Posts from "../views/Posts.vue";
import postEdit from "../views/postEdit.vue";

Vue.use(VueRouter);

const routes = [
  
  {
    path: "/admin",
    name: "admin",
    component: Admin,
    meta: { requiresAuth: true },
    children: [
      {
        path: "funds/:user",
        name: "funds",
        component: Funds,
      },
      {
        path: "userfunds",
        name: "userfunds",
        component: UserFunds,
      },
      {
        path: "completedetails/:user",
        name: "completedetails",
        component: CompleteDetails,
      },
      {
        path: "overview",
        name: "overview",
        component: Overview,
      },
      {
        path: "posts",
        name: "posts",
        component: Posts,
      },
      {
        path: "postEdit/:postId",
        name: "postEdit",
        component: postEdit,
      },
      {
        path: "ViewPost/:postId",
        name: "ViewPost",
        component: ViewPost,
      },
      {
        path: "users",
        name: "users",
        component: Users,
      },
      {
        path: "allusers",
        name: "allusers",
        component: AllUsers,
      },
      {
        path: "profile/:user",
        name: "profile",
        component: Profile,
      },
      {
        path: "manageusers",
        name: "manageusers",
        component: ManageUsers,
      },
    ],
  },
  {
    path: "/user",
    name: "user",
    component: User,
    meta: { requiresAuth: true, requiresType: true },
    children: [
      {
        path: "myprofile/:user",
        name: "myprofile",
        component: MyProfile,
      },
      {
        path: "posts",
        name: "postsUser",
        component: Posts,
      },
      {
        path: "ViewPost/:postId",
        name: "ViewPostUser",
        component: ViewPost,
      },
      {
        path: "userfunds",
        name: "userfundsUser",
        component: UserFunds,
      },
      {
        path: "userDashboard",
        name: "UserDashboard",
        component: UserDashboard,
      },
    ],
  },
  {
    path: "/",
    name: "Home",
    component: Home,
  },
  
  {
    path: "/resetpassword",
    name: "ResetPassword",
    component: ResetPassword,
  },
  {
    path: "/about",
    name: "About",
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () =>
      import(/* webpackChunkName: "about" */ "../views/About.vue"),
  },
];

const router = new VueRouter({
  
  routes,
});

router.beforeEach((to, from, next) => {
  const requiresAuth = to.matched.some((x) => x.meta.requiresAuth);
  const currentUser = fb.auth().currentUser;


  if (requiresAuth && !currentUser) {
    next("overview");
  } else if (requiresAuth && currentUser) {
    next();
  } else {
    next();
  }
});

export default router;

0 个答案:

没有答案