Я не могу сказать, что это правильно.Это то, что я делаю в своих 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'
- это место, где вы проверяете сессию на сервере.