Поскольку session
- это магазин, вы можете писать в него в браузере, если вы внимательно следите за тем, что оно будет заполнено на стороне сервера. Это полезный шаблон:
<script>
import { stores } from '@sapper/app';
const { session } = stores();
async function login() {
const res = await fetch('auth/login', {
credentials: 'include',
method: 'post',
body: JSON.stringify(whatever)
});
if (res.ok) {
session.update(store => ({
...store,
user: await res.json()
});
} else {
// handle the error
}
}
</script>
{#if $session.user}
<h1>Welcome back {$session.user.name}!</h1>
{:else}
<button on:click={login}>log in</button>
{/if}
Если вам нужно принудительно перезагрузить, location.reload()
сделает свое дело.