无法区分用户和管理员身份验证。
这是我的中间件播放器,问题出在我以用户身份登录后,我仍然可以访问管理页面。
中间件:播放器
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
class Player
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Auth::check()) {
return redirect()->route('login');
}
if (Auth::user()->role == 1) {
return redirect()->route('admin');
}
if (Auth::user()->role == 2) {
return $next($request);
}
}
}
和这是我的路线
Rout:
// User Route
Auth::routes(['verify' => true]);
Route::get('/player', 'PlayerController@index')->name('player')->middleware('player');
Route::post('/player/submit', 'PlayerController@createPlayer');
// Admin Route
Route::get('/admin', 'AdminController@index')->name('admin')->middleware('admin');
请确保在使用App/Http/Kerner.php
或dd(Auth::user())
帮助程序调试中间件之后,立即在dump(Auth::user())
中注册了中间件,并确保请求已成功输入到中间件中。
public function handle($request, Closure $next)
{
dd(Auth::user());
// Or
dd(Auth::user()->role);
if (!Auth::check()) {
return redirect()->route('login');
}
if (Auth::user()->role == 1) {
return redirect()->route('admin');
}
if (Auth::user()->role == 2) {
return $next($request);
}
}