Компоненты отображения ReactJS на основе аутентификации - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть интерфейсное приложение ReactJS, смешанное с фоновым приложением Laravel.

У меня проблема с аутентификацией.Я аутентифицирую пользователя с помощью аутентификации Laravel, но у меня есть некоторые проблемы с отображением компонентов.У меня есть несколько сообщений (/ posts / 1 или / posts / 2 и т. Д.), И когда пользователь заходит на страницу, он может изменить сообщение, если он является автором.

Я сохраняю какукажите идентификатор пользователя и проверьте его следующим образом:

if(this.props.user.id === this.props.posts.id_user) ...

Но это действительно небезопасно, так как состояние может быть изменено любым пользователем с помощью инструмента dev.Изменяя состояние, пользователь может изменить сообщение, даже если он не является автором, потому что для него будут доступны все отображаемые компоненты, управляющие редактированием.

Есть ли «магический» трюк, чтобы предотвратить это?

1 Ответ

0 голосов
/ 26 февраля 2019

Прежде всего, state, о котором вы говорите, это app state, тот, который находится в браузере. Если пользователь изменит это состояние, на эффекты будет влиять только сам пользователь, в его браузеретеоретически, это не меняет data или state в вашей бэкэнде / базе данных, если вы не реализуете ту же проверку, о которой говорите.

Если вы делаете if(this.props.user.id === this.props.posts.id_user) спереди,Вы обязательно должны сделать это за спиной, это место, где имеет место реальная проверка, где пользователь не может изменить идентификатор пользователя, потому что, например, вы будете использовать тот, который хранится в пользовательском сеансев файлах cookie или на сервере Redis.

Всегда проверять в бэкэнде

...