69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import type { RouteRecordRaw } from 'vue-router'
|
|
|
|
import { requireLoggedOut, requireLoggedIn } from '~/router/guards'
|
|
|
|
export default [
|
|
{
|
|
path: '/login',
|
|
name: 'login',
|
|
component: () => import('~/views/auth/Login.vue'),
|
|
props: route => ({ next: route.query.next || '/library' }),
|
|
beforeEnter: requireLoggedOut({ name: 'library.index' })
|
|
},
|
|
{
|
|
path: '/auth/password/reset',
|
|
name: 'auth.password-reset',
|
|
component: () => import('~/views/auth/PasswordReset.vue'),
|
|
props: route => ({ defaultEmail: route.query.email })
|
|
},
|
|
{
|
|
path: '/auth/callback',
|
|
name: 'auth.callback',
|
|
component: () => import('~/views/auth/Callback.vue'),
|
|
props: route => ({
|
|
code: route.query.code,
|
|
state: route.query.state
|
|
})
|
|
},
|
|
{
|
|
path: '/auth/email/confirm',
|
|
name: 'auth.email-confirm',
|
|
component: () => import('~/views/auth/EmailConfirm.vue'),
|
|
props: route => ({ defaultKey: route.query.key })
|
|
},
|
|
{
|
|
path: '/auth/password/reset/confirm',
|
|
name: 'auth.password-reset-confirm',
|
|
component: () => import('~/views/auth/PasswordResetConfirm.vue'),
|
|
props: route => ({
|
|
defaultUid: route.query.uid,
|
|
defaultToken: route.query.token
|
|
})
|
|
},
|
|
{
|
|
path: '/authorize',
|
|
name: 'authorize',
|
|
component: () => import('~/components/auth/Authorize.vue'),
|
|
props: route => ({
|
|
clientId: route.query.client_id,
|
|
redirectUri: route.query.redirect_uri,
|
|
scope: route.query.scope,
|
|
responseType: route.query.response_type,
|
|
nonce: route.query.nonce,
|
|
state: route.query.state
|
|
}),
|
|
beforeEnter: requireLoggedIn()
|
|
},
|
|
{
|
|
path: '/signup',
|
|
name: 'signup',
|
|
component: () => import('~/views/auth/Signup.vue'),
|
|
props: route => ({ defaultInvitation: route.query.invitation })
|
|
},
|
|
{
|
|
path: '/logout',
|
|
name: 'logout',
|
|
component: () => import('~/components/auth/Logout.vue')
|
|
}
|
|
] as RouteRecordRaw[]
|