javascript vue.js:router auth
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript vue.js:router auth相关的知识,希望对你有一定的参考价值。
import Vue from 'vue'
import Router from 'vue-router'
import routes from './routes'
import { authorizeToken } from './guards'
Vue.use(Router)
const router = new Router({ routes })
router.beforeEach(authorizeToken)
export default router
import store from '../store'
export const authorizeToken = (to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
// マッチしたルートにおいて、メタフィールドに`requiresAuth`が付与されている場合は
// ログインした際に付与される認証トークンがあるかどうかチェックする
// 注意:
// このアプリケーションでは簡略化のため`auth.token`があるかどうかのみで
// ログイン済みであるかどうかチェックしているが、
// 本来ならば付与された認証トークンをバックエンドのAPI経由などで検証すべき
if (!store.state.auth || !store.state.auth.token) {
next({ path: '/login' })
} else {
next()
}
} else if (to.path === '/login' && store.state.auth.token) {
next({ path: '/' })
} else {
next()
}
}
import KbnBoardView from '@/components/templates/KbnBoardView.vue'
import KbnLoginView from '@/components/templates/KbnLoginView.vue'
import KbnTaskDetailModal from '@/components/templates/KbnTaskDetailModal.vue'
export default [{
path: '/',
component: KbnBoardView,
meta: { requiresAuth: true },
children: [{
path: 'tasks/:id',
component: KbnTaskDetailModal,
name: 'taskDetailModal',
meta: { requiresAuth: true }
}]
}, {
path: '/login',
component: KbnLoginView
}, {
path: '*',
redirect: '/'
}]
以上是关于javascript vue.js:router auth的主要内容,如果未能解决你的问题,请参考以下文章
Vue组件vue-router使用方法小测
Vue.js vue-router 随笔
Vue路由的使用简单实例
Vue.js的路由之——vue-router快速入门
实现vue-router来完成选项卡切换
vue - router 起步