Laravel 登录和管理面板(身份验证成功后)页面均位于“/”
Laravel login and admin panel (after successful authentication) pages both on "/"
我想让我的应用程序登录和管理面板(成功登录后访问)都可以在“/”上访问。
我使用 SessionsController 的创建方法作为登录部分 (SessionsController.php):
class SessionsController 扩展 \BaseController {
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
if ( Auth::check() ) return Redirect::to('homeAdmin');
//return View::make('homeLogin');
return View::make('homeLogin');
}
// Other methods, store, destroy...
}
我的路线设置如下 (routes.php):
<?php
// Home page as guest displays a login form
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
// Authentication via the SessionsControlle
Route::resource('sessions', 'SessionsController');
// Pages for logged in users
Route::group(['before' => 'auth'], function()
{
// Home page with admin panel for authenticated users
Route::get('/', ['as' => 'homeAdmin']);
// Other pages from admin panel
Route::get('manageThis', ['as' => 'manageThis']);
Route::get('manageThat', ['as' => 'manageThat']);
});
过滤器不变,即(filters.php):
<?php
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('login');
}
}
});
Route::filter('auth.basic', function()
{
return Auth::basic();
});
Route::filter('guest', function()
{
if (Auth::check()) return Redirect::to('/');
});
问题是我经常被重定向到“/login”而不是 'homeLogin' 路由。我想来宾过滤器中有一些需要更改的东西,但是当我编辑它时,它变得更糟并且没有解决问题。
您是否尝试过将 homeLogin 置于来宾组中?就像...
Route::group(['before' => 'guest'], function()
{
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
});
否则,您可以在 controller/route 中以编程方式手动检查:
if(!Auth::user()) {
return View::make('guest.page');
}
有关更多信息,请同时查看此答案:Laravel 4: Two different view pages for a single URI based on auth status
路由应该是一个,并以编程方式检查登录视图和仪表板的控制器 view.You 此过程有两个路由。
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
Route::get('/', ['as' => 'homeAdmin']);
删除一个并像这样在控制器上检查它:
if(Auth::user()) {
return View::make('dashboard')->with('datas', $yourDatabaseQureiesForDashboard);
}
else
{
return View::make('login');
}
我想让我的应用程序登录和管理面板(成功登录后访问)都可以在“/”上访问。
我使用 SessionsController 的创建方法作为登录部分 (SessionsController.php):
class SessionsController 扩展 \BaseController {
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
if ( Auth::check() ) return Redirect::to('homeAdmin');
//return View::make('homeLogin');
return View::make('homeLogin');
}
// Other methods, store, destroy...
}
我的路线设置如下 (routes.php):
<?php
// Home page as guest displays a login form
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
// Authentication via the SessionsControlle
Route::resource('sessions', 'SessionsController');
// Pages for logged in users
Route::group(['before' => 'auth'], function()
{
// Home page with admin panel for authenticated users
Route::get('/', ['as' => 'homeAdmin']);
// Other pages from admin panel
Route::get('manageThis', ['as' => 'manageThis']);
Route::get('manageThat', ['as' => 'manageThat']);
});
过滤器不变,即(filters.php):
<?php
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('login');
}
}
});
Route::filter('auth.basic', function()
{
return Auth::basic();
});
Route::filter('guest', function()
{
if (Auth::check()) return Redirect::to('/');
});
问题是我经常被重定向到“/login”而不是 'homeLogin' 路由。我想来宾过滤器中有一些需要更改的东西,但是当我编辑它时,它变得更糟并且没有解决问题。
您是否尝试过将 homeLogin 置于来宾组中?就像...
Route::group(['before' => 'guest'], function()
{
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
});
否则,您可以在 controller/route 中以编程方式手动检查:
if(!Auth::user()) {
return View::make('guest.page');
}
有关更多信息,请同时查看此答案:Laravel 4: Two different view pages for a single URI based on auth status
路由应该是一个,并以编程方式检查登录视图和仪表板的控制器 view.You 此过程有两个路由。
Route::get('/', ['as' => 'homeLogin', 'uses' => 'SessionsController@create']);
Route::get('/', ['as' => 'homeAdmin']);
删除一个并像这样在控制器上检查它:
if(Auth::user()) {
return View::make('dashboard')->with('datas', $yourDatabaseQureiesForDashboard);
}
else
{
return View::make('login');
}