如何仅保护我的控制器的特定路由?
Posted
技术标签:
【中文标题】如何仅保护我的控制器的特定路由?【英文标题】:How to protect only specific routes of my controller? 【发布时间】:2021-02-14 16:37:10 【问题描述】:所以我有一个资源控制器,它的路由定义如下:
Route::resource('product', 'App\Http\Controllers\ProdutoController')->middleware('auth');
但是,我希望未登录的用户能够访问该控制器内的“显示”方法。如何将“auth”中间件应用于控制器内的每个方法,除了“show”方法?
【问题讨论】:
您可以从这里找到您的解决方案: more details... 【参考方案1】:在您的 ProdutoController 中,您可以使用构造方法来应用身份验证中间件,但某些路由除外:
/**
* Instantiate a new controller instance.
*
* @return void
*/
public function __construct()
$this->middleware('auth')->except(['index', 'show']);
【讨论】:
以上是关于如何仅保护我的控制器的特定路由?的主要内容,如果未能解决你的问题,请参考以下文章
我如何将 url 路由到 laravel 中的特定控制器并锚定到特定控制器
如何在路由中定义 PUT 方法仅限制为控制器中的 Put 方法而不使用参数?
仅使用 Spring Security 自定义令牌无状态保护 REST 控制器,同时保持常规状态完整 Web 登录正常工作