基于身份验证的ReactJS显示组件

时间:2019-02-26 01:10:14

标签: reactjs laravel redux laravel-authentication

我有一个ReactJS前端应用程序和一个Laravel后端应用程序。

我遇到了auth问题。我正在使用Laravel auth对用户进行身份验证,但是在显示组件时遇到了一些麻烦。我有一些帖子(/ posts / 1或/ posts / 2等),当用户访问该页面时,如果他是作者,则可以修改该帖子。

我将用户的ID作为状态存储,并进行如下检查:

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

但这确实是不安全的,因为任何人都可以使用dev工具来修改状态。通过修改状态,即使他不是作者,用户也可以对其进行修改,因为管理该编辑的所有显示组件都可以被他访问。

是否有一个“魔术”技巧可以阻止它?

1 个答案:

答案 0 :(得分:2)

首先,您要谈论的stateapp state,它是驻留在浏览器中的data,如果用户更改状态,则效果只会受到用户本身的影响,从理论上讲,除非您没有实现与您正在谈论的相同的验证,否则在他的浏览器/数据库中,stateif(this.props.user.id === this.props.posts.id_user)不会改变。

如果您在前面进行useradd master passwd master chmod 700 /home/master useradd -G master user1 passwd user1 usermod -a -G user1 master chmod 770 /home/user1 useradd -G master user2 passwd user2 usermod -a -G user2 master chmod 770 /home/user2 ,则绝对必须在后面进行,这才是真正验证的地方,这是用户无法更改用户ID的地方,因为例如,您将在用户会话中使用存储在cookie或Redis服务器中的那一个。

  

始终在后端进行验证