Задать вопрос
@NicknameIsNotExist

Как сделать проверку на авторизацию?

Имеется сайт с JWT авторизацией, как правильно проверять авторизацию? Если просто проверять авторизацию по наличию Cookie, то туда можно добавить любую информацию. Появляется вопрос - как эту информацию валидировать? Я попытался при каждой перезагрузке страницы отправлять запрос на сервер с токеном, и этот вариант казалось бы неплохой, но поизучав другие сайты, я не заметил у них такого же принципа проверки авторизации, при этом при изменении токена в Cookie авторизация слетает.
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Elena0394
@Elena0394
jwt сохраняется в localstorage при авторизации, а каждое посещение проверяется на наличие jwt
function App() {
  const [auth, setAuth] = useState(!!localStorage.getItem('jwt'));

  return (
    <Auth.Provider value={[auth, setAuth]}>
      {auth && <Authorized />}
      {!auth && <Unauthorized />}
    </Auth.Provider>
  )
}
Ответ написан
profyan
@profyan
Фронтовой на маркетплейсе
Нормальный вариант отправлять запрос на сервер при первом рендере приложения. Если сервер вернул 401, то отправляем на форму аутентификации. Иначе -- продолжаем пользоваться. Если же пользователь сам подменит как-то Cookie, то при любом действии, требующим запрос на бекенд, он будет выведен на чистую воду. И нет смысла как-то париться и отслеживать изменения куки. Ведь если пользователь ничего не отправляет на бек, то он ничего в системе и не меняет получается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы