嗨,我正试图为我的子域设置不同的身份验证,例如,如果用户是来宾,并且通过子域访问域,我希望将它们重定向到子域登录,如果用户正在从主域页面访问,则将它们重定向到主域登录页。主域
Route::group(array('before' => 'auth'), function() {
Route::get('/profile', array(
'as' => 'profile-user',
'uses' => 'ProfileController@user'
));
});
网址: 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' => 'AccountController@subAccount'
));
});
});
});
网址: dev.example.com/mysub/account
因此,如果有人在没有登录的情况下访问上面的URL,他们应该被重定向到dev.example.com,这是我子域的主页。
"auth“过滤器对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'));
}
}
});
但这似乎重定向他们回“子域-登录”,即使登录是正确的。
发布于 2015-02-10 12:31:06
因此,我发现最好的解决方案是为子域创建另一个auth过滤器。
Route::filter('subauth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest(URL::route('login'));
}
}
});
https://stackoverflow.com/questions/28409345
复制相似问题