@Mysianio
вайти в айти

Как сделать полноценные логин Flask + React?

У меня есть форма, где можно залогинить пользователя, и если данные существуют в базе данных, то в ответ вернется ключ сессии
И тут появляется сама суть вопроса, что мне с этим делать? Как использовать ключ сессии, чтобы пользователь мог зайти в сеть и писать от своего имени и редактировать только свой профиль?
Есть какой-то материал для осознания, как реализовать полноценный логин
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
1. При успешной авторизации передавайте на клиент токен.
2. Храните токен в cookie. Проверяйте его наличие при инициализации и либо отрисовывайте вариант для залогиненного пользователя, предварительно скачав его данные, либо для гостя.
3. Располагая такими данными как id пользователя, вы с легкостью можете отличать стоит ли вам показывать кнопку edit в профиле или нет:
const { me, user } = this.props;
const isOwner = me.id === user.id;

return (
  <>
    {isOwner && <Button onClick={this.handleEditClick}>Edit</Button>}
    {/* other jsx */}
  </>
);

где me - текущий залогиненный пользователь, user - пользователь чей профиль загружен.

4. Само собой, все права надо проверять на стороне сервера. Для этого токен следует посылать в заголовках запросов.

Есть какой-то материал для осознания, как реализовать полноценный логин

Материала в интернете по теме море, только откройте Google и сделайте нужный запрос. Статей и руководств, которые содержат в себе все без исключения кейсы естественно нет, поэтому изучайте разные источники.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dimuska139
Backend developer
При успешной авторизации генерируй и отдавай в респонсе с сервера jwt-токен, в котором будут вшиты данные юзера и права доступа. На основании этой информации уже на фронте определяй, что надо рендерить, а что нет. При каждом запросе к серверу передавай в заголовке этот jwt-токен, и там валидируй его. Если валидный, то смотри права, вшитые в него.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 17:14
4000 руб./за проект
29 мар. 2024, в 17:04
5000 руб./за проект
29 мар. 2024, в 17:03
3000 руб./за проект