请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有些请求是谁都能访问但是只能访问属于自己那个的权限控制

请求级别权限控制可以在网关做,但是有些请求是谁都能访问但是只能访问属于自己那个,比如根据评论id删除用户的评论,所有用户都可以调用这个接口,但是这个请求只有评论id属于该用户时才能调用,这种级别权限控制是不是只能在具体方法调用时在去自行判断. 比如调用根据评论id删除的方法前 ,先根据评论id获取评论所属用户名,在跟当前登陆用户名比较,相同就允许删除.这样. 我感觉要搞执行两条sql不太好,有没更好的办法. 而且我还想就是如果当前角色是超级管理员,不管评论属不属于它都可以执行删除, 但是因为在具体方法上判断权限,万一有天角色权限变了我不是得在每个具体方法调用都改一遍

正在回答 回答被采纳积分+3

1回答

Bobby219 2020-02-15 19:28:48

第一个,当前登陆的用户信息,不一定只放用户名啊,用户的id也可以放进去,这时候你只比较用户的id就可以了,或者直接让前端把用户名一起传过来,这样可以直接比较用户名。

第二个问题,可以建立一个权限服务,当前用户是不是有权限执行这个请求,通过权限服务进行判断。

0 回复 有任何疑惑可以回复我~
  • 提问者 笨猪大难临头 #1
    比如  "/{用户名}/{评论id}" 这个请求,    前端把用户名和评论id一起传过来,  当传过来用户名和当前登陆用户用户名相同时就允许根据评论id删除, 但这有个bug地方,  如果只是只要我url传的用户名和token里携带的用户名相同就允许操作的话,  那么不管这个评论id是属于哪个用户的我都可以完成删除.
    回复 有任何疑惑可以回复我~ 2020-02-16 01:55:30
  • 提问者 笨猪大难临头 #2
    你觉得要不还是把sql直接设计成根据用户id和评论id删除  delete from xx where 评论id = xx and   用户id = 当前登陆用户id  好,  而不是直接根据评论ID删除,这样就不用鉴权判断评论是不是属于当前用户,你觉得哪种好
    回复 有任何疑惑可以回复我~ 2020-02-16 02:15:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信