Я пытаюсь присоединиться к Backend (Express JS) и Frontend (React JS). Прямо сейчас я пытаюсь понять, как обрабатывать управление сессиями.
Когда пользователь входит в систему, используя форму, созданную с помощью React JS, бэкэнд возвращает маркер HS-256 JWT с информацией о пользователе в качестве полезной нагрузки.
Во избежание извлечения данных незарегистрированными пользователями я прочитал, что веб-интерфейс должен отправлять токен носителя в качестве заголовка, и это прекрасно работает. Но я не могу найти способ избежать использования пользователями приложения в первую очередь, я имею в виду, когда загружается каждая страница.
Сейчас мой код входа выглядит так:
import React, { useEffect, useState } from 'react';
import { useCookies } from 'react-cookie';
export default () => {
const [cookies, setCookie] = useCookies(['auth']);
const [redirect, setRedirect] = useState(false);
const handleSubmit = async e => {
e.preventDefault();
const response = await fetch('server/auth/login', options);
const {token} = await response.json();
setCookie('token', token, { path: '/' });
};
useEffect(() => {
if (cookies.auth) {
setRedirect(true);
}
}, [cookies]);
if (redirect) {
return <Redirect to="/admin" />;
}
return <form onSubmit={handleSubmit}>...</form>
};
Я не знаю, как использовать эту информацию в каждом компоненте, чтобы правильно установить пользовательские ограничения. Что я должен сделать, чтобы достичь этого?