我的应用有问题。我想实现一个完整的ID混淆来隐藏每个模型的id。这是个好主意吗?
我已经实现了这个精彩的package,它给了我一个简单的特征,包括Hashing ID&Route Model Binding< 3
但是,我在开发测试时遇到了问题......当我想测试时,例如发送一个ID的POST,有点烦人,因为我必须在提交之前散列该ID&gt ;。<
但我的大问题是指客户提交表格与关系的时候!
表单显示不同的输入,其中一些是设置关系的 select ,例如,role_id。所以客户发送:
{
name: 'Username',
email: 'mail@mail.com',
role_id: 'Wtf10' // role_id is obfuscated :)
}
总而言之,问题在于我的控制器,在验证和分配角色时:(
public function store(UserRequest $request) // Problem 1 - Validation
{
User::create($request->all()); // Problem 2 - Setting the correct role_id
}
所以有两个问题。我不知道如何解决它:
$role = Role::findIdBySlug($request->get('role_id'))->id
但是omg,它需要我将这个机制应用于每个关系输入!?那么正确的方法是什么?也许是一个Big Master Middleware of Love,它会在请求体中查找每个混淆的ID,并用解码后的ID替换它们? :S
帮助!
谢谢!
答案 0 :(得分:1)
我希望对公开面对的ID进行混淆,而又不会增加太多开销。没有数据库更改,没有自定义路由模型绑定解析等。因此,我为此构建了一个程序包。但是,混淆“ id”是有问题的。所以我在自己的json中添加了“键”并隐藏了“ id”。在我的路线中,我可以互换使用id或混淆密钥。优先级中间件会在途中重新编写它们,以便laravel可以在内部使用常规id。我刚刚发布了软件包的公共版本,以寻求帮助。