Я создаю приложение с Nuxt, используя nuxt и nuxt-auth для обработки аутентификации.
Я хочу иметь два промежуточных программного обеспечения для auth - auth и guest.Пользователь с правами доступа не должен иметь доступ к странице входа в систему ('/') и будет перенаправлен на панель мониторинга, но может получить доступ куда угодно.Гостевой пользователь не должен иметь доступ к любой странице, кроме страницы входа в систему, и будет перенаправлен на страницу входа при любых попытках.
В настоящее время все работает нормально в отношении аутентификации и входа в систему. Однако когдапрошедший проверку пользователь щелкает ссылку на «/» ИЛИ обновляет страницу, которую он отправляет на страницу входа, и снова получает привилегии «guest», даже если в хранилище vuex для них по-прежнему установлено значение «loggedIn».Похоже, когда SSR пинки в хранилище аутентификации не доступны на сервере, поэтому он перенаправляет пользователя на страницу входа в систему, а затем, когда все запутано, однако это предположение.
Ниженекоторый код:
// layout / default <- используется для страницы входа в систему </p>
export default {
middleware: 'guest'
}
// layout / dashboard <- используется для всех страниц, прошедших проверку подлинности только для пользователей </p>
export default {
middleware: 'auth'
}
// middleware / guest.js
export default function (ctx) {
if (ctx.app.$auth.$state.loggedIn) {
return ctx.app.$auth.redirect('home')
}
}
Другое промежуточное ПО аутентификации создается с помощью 'nuxt-auth', файл nuxt.config.js имеет следующие настройки:
auth: {
localStorage: false,
cookie: {
options: {
secure: true
}
},
redirect: {
login: '/',
logout: '/',
callback: '/api/auth/callback',
home: '/dashboard'
}
},