我在我的项目中重置了自定义密码,用户可以在其中更改密码,现在我如何保护用户无法操纵ID的路由。laravel是否在中间件中拥有它?
示例: http://localhost:8000/changepassword/1/edit
:如果用户尝试更改 id 参数,它将重定向到拒绝访问页面。这可能吗?
答案 0 :(得分:1)
是可以的
在控制器功能中,您可以检查当前/登录用户ID以及要从URL获取的ID
对于管理员用户,您还可以添加一个条件
if(ADMINUSER || LOGIN_USER_ID == URL_ID){
}
但是,我建议,使用随机且唯一的字符串添加额外的列使用该列而不是ID,在这种情况下,您的网址将是这样
/ changepassword / wcdftgHYuj346DERFD / edit
然后您需要基于random_string'wcdftgHYuj346DERFD'吸引用户