форма авторизации в SveleKit, в ней выставляется в куки токен, после этого происходит goto на страницу профиля пользователя, на которой токен не появляется. Логгированием удалось выяснить, что после goto и prefetch запросы в хук не попадают, соответственно кука не читается и токен в сессию не выставляется. Как это исправить? Если обновить страницу в браузере, то токен появляется
Сюда смотрел? https://kit.svelte.dev/docs#hooks-getsession
Да, конечно. Я про это и написал, что хуки не задействуются при goto и prefetch
Странно. Я через сессию нормально получаю все данные. В компоненте <script> import { page, session } from '$app/stores'; $: segment = $page.path.split('/')[1]; [...] </script> { #if $session.appVersion } <DropdownItem header>{ $session.appName }: { $session.appVersion }</DropdownItem> <DropdownItem divider /> { /if } hooks.js: import session from '$lib/mySession'; import { name, version } from '../package.json'; /** @type {import('@sveltejs/kit').Handle} */ export async function handle({ request, resolve }) { request.locals.session = await session.get(request); if (request.locals.session) { request.locals.session['appVersion'] = version; request.locals.session['appName'] = name; } const response = await resolve(request); if (! response) return; return { ...response, headers: { ...response.headers, 'X-App-Name': name, 'X-App-Version': version } }; }
Обсуждают сегодня