laravel - 为管理员登录和用户登录创建中间件时页面未正确重定向
问题描述
我想做管理员登录系统和用户登录系统。两者都有不同的表。对于用户身份验证,我使用普通身份验证,而对于管理员身份验证,我使用中间件。我的代码如下,请告诉我此代码中的错误是什么
//RedirectIfNotAdmin
public function handle($request, Closure $next, $guard = 'admin')
{
if (!Auth::guard($guard)->check()) {
return redirect('/admin');
}
return $next($request);
}
路线
Route::group(['middleware' => ['web']], function () {
Route::get('admin/login', array('as' => 'login.index', 'uses' => 'Admin\LoginController@showLoginForm'));
Route::post('admin/login', array('as' => 'login.entry', 'uses' => 'Admin\LoginController@login'));
Route::get('/admin/logout','Admin\LoginController@logout');
Route::get('admin/register', 'Admin\RegisterController@showRegistrationForm');
Route::post('admin/register', 'Admin\RegisterController@register');
Route::get('/admin', 'AdminController@index');
});
核心
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
];
管理员控制器
class AdminController extends Controller{
public function __construct(){
$this->middleware('admin');
}
public function index(){
return view('home');
}}
登录控制器
protected $redirectTo = '/admin';
public $guard = 'admin';
public function showLoginForm()
{
if (view()->exists('admin.auth.authenticate')) {
return view('admin.auth.authenticate');
}
return view('admin.auth.login');
}
public function showRegistrationForm()
{
return view('admin.auth.register');
}
解决方案
推荐阅读
- seaborn - Seaborn:如何将对数轴格式从科学更改为普通格式并在所有子图中显示刻度(Facetgrid)
- python - 如何让这个循环重复到某个点?
- javascript - 打字稿类装饰器:覆盖构造函数但保留类名?
- python - 有没有办法确定 NDArray 是否可训练?
- swift - 无法为 UI 测试调整 datepicker 的值:类型 6 的 PickerWheel
- python - 如何在 discord.py 中停止执行命令
- elasticsearch - Elasticsearch,为什么“SELECT * FROM my_index LIMIT 1”需要这么长时间?
- python - python中的win32api.setcursorpos错误
- javascript - 二进制搜索的替代解决方案同样好?
- python - 如何创建部分堆积条形图