РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuSpMwGM 25 of 90 menu
◀ ▶

Глобальный посредник в Nuxt

Именованный посредник срабатывает только там, где его указали в definePageMeta. Иногда проверку нужно повесить на весь сайт: закрытые пути, общий журнал переходов или единое правило для всех адресов. Для этого имя файла дополняют суффиксом .global перед расширением.

Файл auth.global.js Nuxt подхватит автоматически на каждом переходе. Поле middleware на страницах для него не нужно. Достаточно переименовать обычный auth.js в auth.global.js, если вы уже пользовались именованным вариантом.

Давайте разберём глобальную проверку, которая не пускает на служебный адрес /hidden:

export default defineNuxtRouteMiddleware((to) => { if (to.path === '/hidden') { return navigateTo('/home'); } });

Любая страница, кроме /hidden, откроется как раньше. При обращении к /hidden сработает редирект на /home независимо от того, есть ли у hidden.vue своё поле middleware. Суффикс global и есть признак такого поведения.

Для проверки заведём простые экраны:

<template> <h1> Home </h1> </template>

Страница скрытого раздела может содержать любой текст, но до неё пользователь не дойдёт, пока активен глобальный посредник:

<template> <h1> Hidden </h1> </template>

Сделайте глобальный посредник, который при адресе /private отправляет пользователя на /login.

Сделайте страницу login с заголовком Login для проверки редиректа с /private.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить