Laravel如何在路由中阻止或保护ID

时间:2018-07-03 09:24:24

标签: laravel routing

我在我的项目中重置了自定义密码,用户可以在其中更改密码,现在我如何保护用户无法操纵ID的路由。laravel是否在中间件中拥有它?

示例: http://localhost:8000/changepassword/1/edit:如果用户尝试更改 id 参数,它将重定向到拒绝访问页面。这可能吗?

1 个答案:

答案 0 :(得分:1)

是可以的

在控制器功能中,您可以检查当前/登录用户ID以及要从URL获取的ID

对于管理员用户,您还可以添加一个条件

if(ADMINUSER || LOGIN_USER_ID == URL_ID){

}

但是,我建议,使用随机且唯一的字符串添加额外的列使用该列而不是ID,在这种情况下,您的网址将是这样

/ changepassword / wcdftgHYuj346DERFD / edit

然后您需要基于random_string'wcdftgHYuj346DERFD'吸引用户