Browse Source

chore(gui-v2): add comments to global auth middleware

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
pull/2716/head
Braks 2 years ago committed by Pranav C
parent
commit
4210047820
  1. 30
      packages/nc-gui-v2/middleware/auth.global.ts

30
packages/nc-gui-v2/middleware/auth.global.ts

@ -1,15 +1,37 @@
import { defineNuxtRouteMiddleware, navigateTo, useNuxtApp } from '#app' import { defineNuxtRouteMiddleware, navigateTo, useNuxtApp } from '#app'
/**
* Global auth middleware
*
* On page transitions, this middleware checks if the target route requires authentication.
* If the user is not signed in, the user is redirected to the sign in page.
* If the user is signed in and attempts to access a route that does not require authentication (i.e. signin/signup pages),
* the user is redirected to the home page.
*
* By default, we assume that auth is required
* If not required, mark the page as `requiresAuth: false` using `definePageMeta`
*
* @example
* ```
* definePageMeta({
* requiresAuth: false,
* ...
* })
* ```
*/
export default defineNuxtRouteMiddleware((to, from) => { export default defineNuxtRouteMiddleware((to, from) => {
const { $state } = useNuxtApp() const { $state } = useNuxtApp()
/** /** if auth is required or unspecified (same as required) and user is not signed in, redirect to signin page */
* By default, we assume that auth is required
* If not required, mark the page as `requiresAuth: false` using `definePageMeta`
*/
if ((to.meta.requiresAuth || typeof to.meta.requiresAuth === 'undefined') && !$state.signedIn.value) { if ((to.meta.requiresAuth || typeof to.meta.requiresAuth === 'undefined') && !$state.signedIn.value) {
return navigateTo('/signin') return navigateTo('/signin')
} else if (to.meta.requiresAuth === false && $state.signedIn.value) { } else if (to.meta.requiresAuth === false && $state.signedIn.value) {
/**
* if user was turned away from non-auth page but also came from a non-auth page (e.g. user went to /signin and reloaded the page)
* redirect to home page
*
* else redirect back to the page they were coming from
*/
if (from.meta.requiresAuth === false) { if (from.meta.requiresAuth === false) {
return navigateTo('/') return navigateTo('/')
} else { } else {

Loading…
Cancel
Save