如何对 URL laravel 7 隐藏 id?
how to hide id from URL laravel 7?
我有这个 url :
http://127.0.0.1:8000/deliverer/4
我想要这样
http://127.0.0.1:8000/deliverer/
这是我的职能:
public function show($id)
{
// $userhash->hashids->encode($id);
$user=User::find($id);
return view('deliverer.profile')->with('user',$user);
}
这是我的路线
Route::get('deliverer/{id}', 'deliverer\DelivererController@show')->name('profile');
这就是观点
<a href="http://127.0.0.1:8000/deliverer/{{ Auth::user()->id }}" >
<i class="nc-icon nc-single-02"></i>
<p>Profile</p>
</a>
我假设您只是想隐藏 ID,以便用户可以猜测下一个数字或尝试调出他们不应该调出的记录。
您查看过 UUID 吗?此处示例:(https://dev.to/wilburpowery/easily-use-uuids-in-laravel-45be) 这可能是一个解决方案。
此外,如果您担心有人可能会篡改 URL 以提取记录,您应该考虑保护您的模型。检查用户是否应该有权访问该特定记录。有很多方法可以实现。
你可以使用token或者配置一个中间件,或者像你一样散列或者加密id,调用后进行验证
url 会是这样的:
http://127.0.0.1:8000/deliverer/?id=aze45a8sd54q
假设您要完成的是查看当前经过身份验证的用户的个人资料,那么您应该按照以下步骤操作:
首先你必须修改路由并从 URL 中删除 {id},如下所示:
Route::get('deliverer', 'deliverer\DelivererController@show')->name('profile');
然后,在控制器内部,您必须从 show() 方法中删除 $id 参数,并更改方法以从经过身份验证的用户那里获取 ID。
public function show($id)
{
// $userhash->hashids->encode($id);
$user = \Auth::user();
return view('deliverer.profile')->with('user',$user);
}
当然,您必须从视图路由中删除 Auth::user()->id(),并且可能使用命名路由而不是硬编码,如下所示:
<a href="{{ route('profile') }}">
<i class="nc-icon nc-single-02"></i>
<p>Profile</p>
</a>
我有这个 url :
http://127.0.0.1:8000/deliverer/4
我想要这样
http://127.0.0.1:8000/deliverer/
这是我的职能:
public function show($id)
{
// $userhash->hashids->encode($id);
$user=User::find($id);
return view('deliverer.profile')->with('user',$user);
}
这是我的路线
Route::get('deliverer/{id}', 'deliverer\DelivererController@show')->name('profile');
这就是观点
<a href="http://127.0.0.1:8000/deliverer/{{ Auth::user()->id }}" >
<i class="nc-icon nc-single-02"></i>
<p>Profile</p>
</a>
我假设您只是想隐藏 ID,以便用户可以猜测下一个数字或尝试调出他们不应该调出的记录。
您查看过 UUID 吗?此处示例:(https://dev.to/wilburpowery/easily-use-uuids-in-laravel-45be) 这可能是一个解决方案。
此外,如果您担心有人可能会篡改 URL 以提取记录,您应该考虑保护您的模型。检查用户是否应该有权访问该特定记录。有很多方法可以实现。
你可以使用token或者配置一个中间件,或者像你一样散列或者加密id,调用后进行验证
url 会是这样的:
http://127.0.0.1:8000/deliverer/?id=aze45a8sd54q
假设您要完成的是查看当前经过身份验证的用户的个人资料,那么您应该按照以下步骤操作:
首先你必须修改路由并从 URL 中删除 {id},如下所示:
Route::get('deliverer', 'deliverer\DelivererController@show')->name('profile');
然后,在控制器内部,您必须从 show() 方法中删除 $id 参数,并更改方法以从经过身份验证的用户那里获取 ID。
public function show($id)
{
// $userhash->hashids->encode($id);
$user = \Auth::user();
return view('deliverer.profile')->with('user',$user);
}
当然,您必须从视图路由中删除 Auth::user()->id(),并且可能使用命名路由而不是硬编码,如下所示:
<a href="{{ route('profile') }}">
<i class="nc-icon nc-single-02"></i>
<p>Profile</p>
</a>