Ну, я начинаю с nuxt, и у меня есть следующие маршруты:
/home
/dashboard
/login
Я хочу защитить /dashboard
, но только для пользователей, вошедших с помощью токена в Cookie.
Тогда я создал промежуточное ПО
/middleware/auth.js
import Cookie from 'js-cookie'
export default function({ req, redirect }) {
if (process.server) {
if (!req.headers.cookie) return redirect('/login')
const jwtCookie = req.headers.cookie.split(';').find(c => c.trim().startsWith('jwt='))
if (!jwtCookie) return redirect('/login')
} else {
const jwt = Cookie.get('jwt')
if (!jwt) { window.location = '/login' }
}
}
и зарегистрируйте промежуточное ПО на странице макета или панели инструментов
<script>
export default {
middleware: 'auth',
}
</script>
когда я получаю доступ к /dashboard
, очевидно, отлично работает
но проблема в том, что промежуточное ПО регистрируется глобально, оно работает на всех страницах, на всех маршрутах
Поэтому, когда вы открываете /home
, которая является опубликованной страницей, если у вас нет cookie, вы в конечном итоге перенаправляетесь на страницу входа
кто-нибудь поможет?