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

Laravel如何在路由中阻止或保护id,laravel,routing,Laravel,Routing,我在我的项目中有自定义密码重置,用户可以更改其密码,现在我如何保护用户无法操作id的路由。laravel在中间件中有吗 示例:http://localhost:8000/changepassword/1/edit如果用户试图更改id参数,它将重定向到拒绝访问页面。。这是可能的吗?是的,这是可能的 在控制器函数中,您可以检查当前/登录用户id以及将从URL获取的id 对于管理员用户,您还可以添加一个条件 if(ADMINUSER || LOGIN_USER_ID == URL_ID){ } 但

我在我的项目中有自定义密码重置,用户可以更改其密码,现在我如何保护用户无法操作id的路由。laravel在中间件中有吗


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

是的,这是可能的

在控制器函数中,您可以检查当前/登录用户id以及将从URL获取的id

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

if(ADMINUSER || LOGIN_USER_ID == URL_ID){

}
但我建议添加一个带有随机和唯一字符串的额外列,使用该列而不是Id,在这种情况下,您的URL将如下所示

/更改密码/wcdftgHYuj346DERFD/edit


然后,您需要根据随机字符串“wcdftgHYuj346DERFD”获取用户。

如果可能,您可以检查登录用户id和从URL获取的用户id。如果我要雇用该用户,默认管理员会发生什么情况?他如何更改其他人的密码..你可以检查管理员用户,如果用户是管理员或用户id等于登录用户id,我喜欢这个建议,我不知道randon字符串可以用作URL中的id字段,这意味着每次我创建新用户时,它也会发送随机字符串,那么当我拉出id时,我将一起检索字符串列?是,在添加新用户时,添加随机字符串,并在需要时检索它?作为参数?是的,您可以添加此参数