Protected Routing

Sering kali kita memerlukan halaman yang diproteksi. Hanya user yang sudah login yang bisa masuk ke halaman tersebut.

Buat Halaman src/routes/AccessDenied.svelte

<script>
  import { Link } from "svelte-routing"
  import { PATH_URL } from "../helper/path"
</script>

<h1>No access 🤕</h1>
<h2>
  Go back to <Link to={PATH_URL.BASE}>Home page</Link>
</h2>

Buat file src/stores/token.js

import { writable } from 'svelte/store';

export const token = writable(localStorage.getItem('token'));

Buat file src/ProtectedRoute.svelte

<script>
  import { Route } from "svelte-routing"
  import AccessDenied from "./routes/AccessDenied.svelte"
  import { token } from "./stores/token.js"

  export let path
  export let component
  $: isAuthenticated = $token;
</script>

{#if isAuthenticated}
  <Route path={path} component={component} />
{:else}
  <Route path={path} component={AccessDenied} />
{/if}

Buat file src/routes/UserList.svelte

Ubah file src/App.svelte

Buat file src/components/Navigation.svelte

Update file-file routes untuk menambahkan Navigation

Last updated

Was this helpful?