首页 > 解决方案 > 如何限制经过身份验证的用户只能访问他们的个人资料

问题描述

我坚持使用用户个人资料功能,我只希望经过身份验证的用户只能访问他们自己的个人资料。

用户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');
});

标签: phplaravel

解决方案


您可以使用如下外观检查登录用户和参数用户是否相同Illuminate/Support/Facades/Auth

public function show(Applicant $applicant)
{
    if (Auth::id() == $applicant->id) {
        return view('applicant.show', compact('applicant'));
    }

    return abort(404);
}

推荐阅读