我在处理中间件时遇到问题,
这里是AdminMiddleware代码:
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');
});
但是当我登录然后它没有工作并重定向到只有登录页面时,请指导我如何处理中间件问题。
答案 0 :(得分:1)
你想要一组仅限管理员的路线,对吧?
您可以使用can
中间件
Route::group(['middleware' => 'can:admin'], function () {
Route::get('/dashboard', 'BackEnd\HomeController@getDashboard');
});
将检查您可以在Providers/AuthServiceProvider.php
Gate::define('admin', function (User $user) {
return $user->admin == 1;
});
如果检查失败,您将收到“未经授权”的回复。
如果您希望重定向到登录页面,您可以坚持使用自定义中间件,它应该只是
if (Auth::check() && Auth::user()->admin == 1)
Adnan Mumtaz's answer是正确的,密码不应该是数据库中的纯文本,而应该加密(保存为bcrypt('12345')
的结果)。
答案 1 :(得分:0)
你的密码不是你应该做的
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');
}
}