funkwhale/front/src/router/routes/auth.ts

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[]