Php 中间件不使用laravel 5.4.6限制路由
我在处理中间件时遇到问题 这是数据库用户 以下是管理中间件代码:Php 中间件不使用laravel 5.4.6限制路由,php,laravel,middleware,Php,Laravel,Middleware,我在处理中间件时遇到问题 这是数据库用户 以下是管理中间件代码: public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check() && Auth::user()->admin == 1) { return $next($request); }else{ return redirect('/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check() && Auth::user()->admin == 1) {
return $next($request);
}else{
return redirect('/admin-login');
}
}
以下是路线代码:
Route::group(['middleware' => 'admin'], function () {
Route::get('/dashboard', 'BackEnd\HomeController@getDashboard');
});
但当我登录时,它不起作用并重定向到仅登录页面,请指导我如何处理中间件问题。您的密码不在bycryted中,您应该这样做
echo bycryp(12345) // paste this in db and then try again
我希望这不需要测试
public function handle($request, Closure $next, $guard = null)
{
if (Auth::check() && Auth::user()->admin == 1) {
return $next($request);
} else {
return redirect('/admin-login');
}
}
你想要一组管理员专用的路由,对吗? 您可以改为使用can中间件
Route::group(['middleware' => 'can:admin'], function () {
Route::get('/dashboard', 'BackEnd\HomeController@getDashboard');
});
这将检查授权策略,您可以在Providers/AuthServiceProvider.php中定义授权策略:
如果检查失败,您将得到未经授权的响应
如果您希望重定向到登录页面,您可以坚持使用自定义中间件,它应该是
if (Auth::check() && Auth::user()->admin == 1)
如果正确,则数据库中的密码不应为纯文本,而应加密保存,而不是bcrypt'12345'的结果。为什么您的密码为纯文本而不是bcrypted?很抱歉,这是为了演示发布问题
if (Auth::check() && Auth::user()->admin == 1)