Laravel验证主域名和子域名以及子域名重定向

问题描述:

嗨我正在尝试为我的子域设置不同的身份验证,例如,如果用户是访客并通过子域访问域,我想将它们重定向到子域登录,并且如果用户正在从主域网页访问,我想将它们重定向到主域登录页面。 主域Laravel验证主域名和子域名以及子域名重定向

Route::group(array('before' => 'auth'), function() { 

    Route::get('/profile', array(
     'as' => 'profile-user', 
     'uses' => '[email protected]' 
    )); 

    }); 

网址:example.com/account

所以,如果有人在访问此无需登录,他们将被重定向到登录页面,在默认情况下Laravel做的主域它在过滤但这似乎并不为子域

二级域名

Route::group(['domain' => 'dev.example.com'], function() { 

    Route::group(array('before' => 'auth'), function() { 

    Route::group(array('before' => 'my account'), function() { 
    Route::get('/mysub/account', array(
     'as' => 'sub-account', 
     'uses' => '[email protected]' 

     )); 
    }); 
    }); 
}); 
工作

网址:dev.example.com/mysub/account

因此,如果有人在不登录,他们应该被重定向到dev.example.com这是主页访问上述网址我的子域

的“权威性”过滤器不子域的工作做在config/session.php文件我已经尝试“域” =>“.example.com的”,和‘域’=> '* example.com',,但似乎没有做这项工作,加上它完全停止从主域名登录

因为如果身份验证从子域失败重定向,我想

Route::filter('auth', function() 
{ 
    if (Auth::guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 
     elseif (Request::getHost() == 'dev.example.com') { 

      return Redirect::guest(URL::route('subdomain-login')); 
     } 

     else 
     { 
      return Redirect::guest(URL::route('primary-domain-login')); 
     } 
    } 
}); 

但这似乎他们重定向回“子域登录”,即使在日志中是正确的。

所以我发现最好的解决方案是为子域创建另一个auth过滤器。

Route::filter('subauth', function() 
{ 
    if (Auth::guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 

     else 
     { 
      return Redirect::guest(URL::route('login')); 
     } 
    } 
});