在我的Laravel 6应用程序中,登录页面位于laravel.test/login
中。我还有一个子域admin.laravel.test
。如果来宾(不是管理员)正在尝试访问admin.laravel.test
,则应将其重定向到登录页面。
因此,我创建了一个名为CheckIfAdmin
的新中间件。
public function handle($request,Closure $next)
{
if (!$request->user()) {
return redirect()->route('login');
}
if ($request->user() && $request->user()->role != UserRole::Administrator) {
return redirect()->route('member');
}
return $next($request);
}
在 routes \ web.php
Route::group(['domain' => 'admin.laravel.test'],function() {
Route::group(['middleware' => 'admin'],function() {
Route::get('/','Admin\AdminController@index');
});
});
登录方法
if ($this->guard()->user()->status == UserStatus::active) {
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return redirect()->intended('/');
}
问题是,当先前的URL为admin.laravel.test
时,它在身份验证后没有重定向到admin.laravel.test
。进行dd(redirect()->intended())
表示 targetUrl 为laravel.test
。我在这里做错了吗?