Отрисовка условного компонента, если пользователь является владельцем поста React + Django Rest Framework
У меня есть, например, модели User и Post. Объект User имеет id, а объект Post имеет id владельца. Я хочу отображать кнопку <Edit />
только тогда, когда пользователь является владельцем поста. Как лучше всего это сделать?
Просто я могу просто получить текущий идентификатор пользователя из базы данных, используя одну из конечных точек моего django и проверить if (user.id === post.owner)
, но лучший ли это способ?
Также как я могу заблокировать или перенаправить пользователей, которые не являются владельцами, если кто-то из них откроет сайт редактирования по ссылке. Должен ли я также просто проверять, если if user.id === post.owner
?
Один дополнительный вопрос: В данный момент я храню свои JWT-токены в localStorage. Что я должен искать, если я хочу скрыть его в моем blowser (если я нажму F12, я могу найти его во вкладке Application)?
Вы можете перегрузить проверку на компонент Edit, отправив ему user.id (у него должен быть post.owner), а затем обработать его внутри компонента Edit.
Чтобы избежать прямого доступа людей к ссылке редактирования, есть много различных вариантов предотвратить или усложнить это, вот два простых:
- Использование хука useEffect при загрузке страницы и проверка этого, если не разрешено перенаправление на предыдущую страницу
- Рандомизация url, чтобы он не был одинаковым каждый раз