身份验证后将:: Intended()重定向到子域

在我的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。我在这里做错了吗?

sl819532666 回答:身份验证后将:: Intended()重定向到子域

有趣,只需添加auth中间件即可解决。

Route::group(['domain' => 'admin.laravel.test'],function() {
    Route::group(['middleware' => ['admin','auth']],function() {
         Route::get('/','Admin\AdminController@index');
    });
});
本文链接:https://www.f2er.com/3164609.html

大家都在问