php - 如何限制经过身份验证的用户只能访问他们的个人资料
问题描述
我坚持使用用户个人资料功能,我只希望经过身份验证的用户只能访问他们自己的个人资料。
用户id: 1
只能访问路由/applicants/profile/1
,否则返回404 Not found
?
class ApplicantProfileController extends Controller
{
public function show(Applicant $applicant)
{
return view('applicant.show', compact('applicant'));
}
}
route::group(['prefix' => 'applicants', 'middleware' => 'auth:applicant'], function() {
Route::get('/profile/{applicant}', 'Profiles\ApplicantProfileController@show');
});
解决方案
您可以使用如下外观检查登录用户和参数用户是否相同Illuminate/Support/Facades/Auth
:
public function show(Applicant $applicant)
{
if (Auth::id() == $applicant->id) {
return view('applicant.show', compact('applicant'));
}
return abort(404);
}
推荐阅读
- vb.net - 运行 vb.net 代码时,MICR 符号未显示在 Windows 2008 服务器上
- pyspark - 提供有关元数据的信息的不同 pyspark 函数(如 input_file_name() )有哪些?
- xml - 通过定义变量减少 XML 文件中的代码行
- amazon-web-services - 从 PGADMIN 连接到 AWS RDS 上的 Postgresql 服务器
- php - 如何通过更改“首页”设置来强制主页重定向并禁用 Wordpress 网站上的主标题?
- c# - 如何请求匿名用户调用控制器?
- sql - 将 1 行拆分为 2 行,占总数的百分比
- mongodb - Cannot run mongod service
- react-native - 在屏幕之间导航按标题图像
- google-apps-script - Query(Importrange) with insertion of needed rows to avoid data overwrite