Сапер - охраняемые маршруты (охранник маршрута) - PullRequest
0 голосов
/ 29 сентября 2019

Мой вопрос очень прост.Как предотвратить, например, неавторизованному пользователю ввод определенных маршрутов в сапере?

user.svelte

<script>
import { onMount } from 'svelte';

onMount(() => {
  if(!authenticated)
    window.history.back()
  });
</script>

Есть ли возможность запустить какой-либо код перед подключением к DOM?

Как вы решаете такую ​​проблему?Спасибо

1 Ответ

0 голосов
/ 29 сентября 2019

Я не могу сказать, что это правильно.Это то, что я делаю в своих SPA.Если я хочу защитить все маршруты моего приложения.Я создаю следующее в _layout.svelte верхнем файле.

<script context="module">

    import {ax} from './_parts/Helper.svelte'
    import {admin, adminName} from './store'
    import {goto} from '@sapper/app'

    export async function preload(page) {
        try {
            const {data} = await ax.get('/admin/is-logged-in')
            adminName.set(data)
            admin.set(true)
        } catch (e) {
            admin.set(false)
        }
    }
</script>

<script>
    import Login from './admin/login.svelte'
    import {loading} from './store.js'
</script>

<main>
{#if $admin}
     <slot></slot>
{:else}
     <Login />
{/if}
</main>

ax - это не волшебство.Это просто настроенные аксиосы.'/admin/is-logged-in' - это место, где вы проверяете сессию на сервере.

...