1
0
Fork 0
mirror of https://github.com/VueTorrent/VueTorrent.git synced 2025-03-22 01:25:48 +03:00
VueTorrent/src/router.js

57 lines
1.3 KiB
JavaScript
Raw Normal View History

2019-04-15 16:50:38 +02:00
import Vue from 'vue'
import Router from 'vue-router'
import { isAuthenticated } from './services/auth.js'
2019-04-15 16:50:38 +02:00
Vue.use(Router)
const router = new Router({
2020-12-30 11:11:40 +01:00
base: process.env.BASE_URL,
routes: [
{
path: '/',
name: 'dashboard',
component: () => import('./views/Dashboard.vue')
2020-12-30 11:11:40 +01:00
},
{
path: '/settings',
name: 'settings',
component: () => import('./views/Settings.vue')
},
{
path: '/torrent/:hash',
name: 'torrentDetail',
component: () => import('./views/TorrentDetail.vue')
},
2021-01-30 13:26:06 +01:00
{ path: '/download=:magnet',
name: 'MagnetHandler',
component: () => import('./views/MagnetHandler.vue'),
2021-01-30 13:26:06 +01:00
props: true
},
2020-12-30 11:11:40 +01:00
{
path: '/login',
name: 'login',
component: () => import('./views/Login.vue'),
2020-12-30 11:11:40 +01:00
meta: {
2021-08-29 11:26:13 +02:00
public: true // Allow access to even if not logged in }
2020-12-30 11:11:40 +01:00
}
}
]
2019-04-15 16:50:38 +02:00
})
router.beforeEach(async (to, from, next) => {
2020-12-30 11:11:40 +01:00
const isPublic = to.matched.some(record => record.meta.public)
const authenticated = isAuthenticated()
2020-12-30 11:11:40 +01:00
if (!isPublic && !authenticated) {
return next({
path: '/login',
// Store the full path to redirect the user to after login
query: { redirect: to.fullPath }
})
}
2020-12-30 11:11:40 +01:00
next()
})
export default router