0Pricing
Sveltejs Academy · Урок

Защищённые маршруты в хуке handle()

Перенаправляйте неаутентифицированных пользователей с защищённых маршрутов внутри хука handle

«Защищённые маршруты в хуке handle()» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.

Защита на граничном уровне

Централизуйте защиту маршрутов в хуке handle, чтобы использовать единый источник истины.

Проверка locals

Если в handle вы устанавливаете event.locals.user, проверяйте это значение для защищённых путей.

export async function handle({ event, resolve }) {
  event.locals.user = await getUser(event);
  if (event.url.pathname.startsWith("/admin") && !event.locals.user) {
    return new Response("Unauthorized", { status: 302, headers: { Location: "/login" } });
  }
  return resolve(event);
}

Доступ на основе ролей

Проверяйте роли пользователей, чтобы ограничивать доступ к разделам.

if (event.url.pathname.startsWith("/admin") && event.locals.user?.role !== "admin") redirect(...);

Резервная проверка в функции загрузки

Внутри функции загрузки +page.server.js выбрасывайте перенаправление, если locals.user отсутствует, для дополнительной безопасности.

Открытые и закрытые маршруты

Используйте сопоставитель путей или границы макетов, чтобы различать их.

Избегайте проверок на каждой странице

Централизованные проверки предотвращают пропуск маршрутов, через которые могут раскрыться конфиденциальные данные.

URL возврата

Кодируйте исходный URL как параметр запроса, чтобы после входа пользователи возвращались обратно.

redirect(303, `/login?next=${encodeURIComponent(event.url.pathname)}`);

Маршруты API

Защищайте конечные точки API (+server.js) с помощью той же логики хуков.

Производительность

Проверки аутентификации должны выполняться быстро. Кэшируйте данные пользователя в рамках запроса через locals.

Согласованность SSR

Централизованная аутентификация обеспечивает одинаковое поведение для запросов с серверным рендерингом и навигацией на стороне клиента.

Тестирование

Аутентификацию на основе хуков проще тестировать изолированно, чем разрозненные проверки на отдельных страницах.

Быстрая проверка

Где следует выполнять защиту маршрутов?

Итоги

Централизуйте защиту маршрутов в handle, проверяя locals.user и перенаправляя неавторизованные запросы.

Часто задаваемые вопросы

Урок «Защищённые маршруты в хуке handle()» бесплатный?

Да — полный текст урока «Защищённые маршруты в хуке handle()» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.

Чему я научусь в уроке «Защищённые маршруты в хуке handle()»?

Перенаправляйте неаутентифицированных пользователей с защищённых маршрутов внутри хука handle Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Sveltejs Academy?

Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Защищённые маршруты в хуке handle()»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Sveltejs Academy?

Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Сеансы на основе файлов cookie
  2. JWT в HTTP-only файлах cookie
  3. Защищённые маршруты в хуке handle()
  4. OAuth с SvelteKit и Lucia Auth
← Назад к Sveltejs Academy