身份验证过滤器不起作用
Posted
技术标签:
【中文标题】身份验证过滤器不起作用【英文标题】:Auth Filter Not Working 【发布时间】:2014-10-07 14:42:14 【问题描述】:尝试使用auth
过滤器来阻止用户在未登录的情况下访问某些路由。下面的代码无论用户的状态如何都会重定向。我无法在任何地方找到该函数中的内容。我使用http://laravel.com/docs/security#protecting-routes 作为参考。不确定我是否应该有一个 if 语句。完全不知道该怎么做。
路线:
Route::get('/account', ['before' => 'auth', function()
// continue to /account
]);
来自app/filters
的标准“身份验证”过滤器:
Route::filter('auth', function()
if (Auth::guest())
if (Request::ajax())
return Response::make('Unauthorized', 401);
else
//return Redirect::guest('login');
);
按照我的理解,函数中的代码只有在用户登录时才会加载。否则会出现 401 错误。
感谢您的帮助。
【问题讨论】:
【参考方案1】:在朋友的帮助下,我修复了它。一些重要信息,路由过滤器将继续用于预期目的,除非从过滤器返回某些内容。此外,标准的身份验证过滤器将不起作用。必须修改。之后就是蛋糕了。代码如下。
路线:
Route::get('/account', ['before' => 'auth', 'uses' => 'SiteController@account']);
身份验证过滤器:
Route::filter('auth', function()
if (Auth::guest())
return Response::make('Unauthorized', 401);
);
【讨论】:
以上是关于身份验证过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章
自定义授权过滤器在 ASP.NET Core 3 中不起作用