javascript - 如何在 SvelteKit 中创建简单的受保护路由?
问题描述
我正在尝试为我的 sveltekit 项目创建一个简单的受保护路线。但是,状态并没有改变。我想知道我在下面的代码中做错了什么?
这是我的 index.svelte 页面代码:
<script>
import { goto } from '$app/navigation';
import { user } from '../stores/store.js';
const logInUser = () => {
user.set(2);
goto('/about');
};
</script>
<button on:click={logInUser}>Log in</button>
<br />
<p>
Direct Access to About Page.
<a href="/about">About</a>
</p>
<slot />
这是我的 stores/store.js 文件代码:
import { writable } from 'svelte/store';
export const user = writable();
这是我想要防止未登录用户访问的 about.svelte 页面的代码:
<script>
import { goto } from '$app/navigation';
import { user } from '../stores/store.js';
const logOutUser = () => {
user.set(1);
goto('/');
console.log(user);
};
console.log(user);
</script>
{#if user > 1}
<h1>Welcome!</h1>
<br />
<button on:click={logOutUser}>Log out</button>
{:else}
<p>Protected Route <a href="/">home</a></p>
{/if}
<slot />
请帮忙。提前致谢。
解决方案
推荐阅读
- node.js - 在 AWS Lambda 中运行 elasticdump(节点可执行文件)
- arrays - (&array)[1] 到底是什么?
- sql - SSRS 从数据集中插入特定值
- python - 有没有办法让你的机器人通过命令跟踪其他服务器的公告频道?
- python - 使用 Python Zeep 的 SOAP 请求:如何指定选择元素(无名称属性)
- android-management-api - 是否可以更改设备策略?
- core-data - 核心数据计数 SwiftUI
- linux - 比较两个不同文件的五列并使用 awk 仅打印两列的差异
- r - 将 lapply 与其他值一起使用
- javascript - Izimodal iframe 不显示