Я только что сделал систему аутентификации через Laravel и столкнулся с проблемой: как проверить в ReactJS зарегистрированного пользователя? Мне нужно получить его идентификатор, чтобы проверить, может ли этот пользователь изменять страницу. Я вообще не знаю, куда идти.
Любые советы приветствуются!
Но что, если я делаю какие-то другие вещи, такие как изменение профиля, которые не имеют ничего общего с ReactJS?





вы не можете использовать аутентификацию по умолчанию (с использованием сеансов) с реагирующим приложением.
вам нужна система, которая создает токен аутентификации (поиск паспорта JWT или Laravel), который идентифицирует пользователей, и, поскольку протокол HTTP не имеет состояния, в каждом запросе вы должны отправлять этот токен на серверную службу/API.
вы, конечно, можете добавить значение, представляющее аутентификацию (true, если у вас есть действительный токен) в ваше глобальное состояние только для пользовательского интерфейса или цели маршрутизации.
проверьте этот средняя статья, где автор объясняет, как создать аутентификацию на основе токенов с помощью laravel с использованием JWT.
вы также можете найти дополнительную информацию о REST и oauth.
Дело в том, что мое приложение можно использовать для других целей, кроме части React (которая представляет 50% всего приложения), и я не знаю, как управлять этим с помощью токена аутентификации, поскольку я не собираюсь использовать сеансы.
я отредактировал свой ответ, добавив ссылку на хорошую статью на среднем уровне.
Спасибо за ссылку. В моей голове все еще какой-то беспорядок: означает ли это, что мне придется входить только через React?
Вы говорите, что ваше приложение наполовину HTML, наполовину реагирует, верно?
Вроде. Половина — это некоторые блейд-представления Laravel с модификацией профиля и т. д. А половина — приложение ReactJS. Пользователь подключен ко всему приложению, а не только к его части.
вы должны использовать аутентификацию на основе токенов во всех своих приложениях, я постараюсь дать вам несколько ссылок о том, как это сделать, когда вы повторно извлекаете HTML-файлы. редактировать: на самом деле вы также можете возвращать html-файлы напрямую, используя маршруты API, как веб-маршруты. laravel.com/docs/5.7/responses#view-ответы
В настоящее время я использую форму входа в блейд Laravel (laravel.com/docs/5.7/аутентификация). После входа в систему все остальное передается приложению React. Проблема в том, что я хочу реализовать механизм выхода из системы. Перенаправление на маршрут входа не приводит к ожидаемому результату. Теперь я думаю, что если я реализую форму входа в систему на стороне клиента, механизм выхода из системы будет проще реализовать с использованием истории React-Router и push-уведомлений. Но это означает, что мне придется изменить механизм аутентификации с помощью JWT или Passport, что потребует больше усилий и времени.
На самом деле вам не нужно этого делать. Просто сделайте запрос (используя токен API от Встроенная система аутентификации API Laravel и позвольте Laravel выполнить проверки (используя Система Laravel авторизация). Если проверки не пройдут, React получит ошибку
403 Unauthorizedи будет действовать соответствующим образом.