Я создаю приложение Nuxt (SSR), которое использует Django на бэкэнде, для аутентификации пользователей я использую стандартную аутентификацию сеанса Django.
Я полностью застрял в той части, где мне нужно перенаправить пользователя на страницу входа, когда пользователь отображается. Итак, что мне нужно сделать, это отправить запрос на мой бэкэнд Django, который вернет, аутентифицирован ли пользователь или нет. Есть ли способ выполнить код до отображения HTML на моей странице?
Что я пробовал:
Промежуточное ПО: Я пробовал это с промежуточным программным обеспечением, но по какой-то причине промежуточное программное обеспечение Nuxt не работает с Axios. Когда я отправляю запрос от промежуточного программного обеспечения, он не отправляет никаких файлов cookie вместе с запросом, поэтому я всегда буду выходить из системы (даже когда я вошел в систему). Это проблема с Nuxt, а не с серверной частью, потому что, если я попробую тот же запрос с простой страницы, он будет работать без каких-либо проблем:
export default async function (context) {
axios.defaults.withCredentials = true;
return axios({
method: 'get',
url: 'http://127.0.0.1:8000/checkAuth',
withCredentials: true,
}).then(function (response) {
//Check if user is authenticated - response is always False
}).catch(function (error) {
//Handle error
});
}
Я использую SSR, извините, что не включил его, сейчас редактирую
Я думаю, поскольку промежуточное ПО выполняется на стороне сервера, у вас нет доступа к файлам cookie, которые существуют на клиенте.
Действительно, после просмотра Github это кажется проблемой. Если мое приложение - SPA, будет ли промежуточное ПО выполняться на стороне клиента? И знаете ли вы, как это сделать без промежуточного программного обеспечения?





Вы используете SSR (универсальный) или SPA?