Auth

With Routify, you don't need any router included functions to authenticate users and protect your app.

Since everything in Routify is scoped, protecting a layout, automatically protects all nested components recursively.

Authentication guards

Users should generally be authenticated in the root layout.

<!-- src/pages/_layout.svelte --> <script> import { authenticate } from 'my-auth-service' </script> <!-- Wait with rendering the app till the user/guest is verified. This prevents small UI glitches and premature authorization checks. --> {#await authenticate()} {:then} <slot /> {/await}
<!-- src/pages/_layout.svelte -->
<script>
  import { authenticate } from 'my-auth-service'
</script>

<!-- Wait with rendering the app till the user/guest is verified.
This prevents small UI glitches and premature authorization checks. -->
{#await authenticate()}
{:then}
  <slot />
{/await}

Authorization Guards

Guards should be implemented in the component or module which they protect.

<!-- src/pages/admin/_layout.svelte --> <script> export let scoped </script> {#if scoped.user.isAdmin} <slot /> {/if}
<!-- src/pages/admin/_layout.svelte -->
<script>
  export let scoped
</script>

{#if scoped.user.isAdmin}
  <slot />
{/if}

Realtime guards

For realtime guards, simply replace {#await <promise>} with {#if <reactive condition>}


Writing good documentation that is up-to-date is difficult. If you notice a mistake, help us out.