php - Laravel 4 Auth 总是重定向到登录页面?/login

标签 php laravel-4

我在我的网络应用程序中使用 laravel,在 routes.php 中我有:

// admin routes
Route::group(array('before' => 'auth'), function()
{
Route::controller('admin', 'UsersController');
});

我想保护并检查此人是否已登录,但此代码总是重定向到“/login”我希望它重定向到“admin/login”,可以这样做吗?

最佳答案

filters.php文件中有一个默认的auth过滤器,应该是这样的:

Route::filter('auth', function($route, $request)
{
    if (Auth::guest()) return Redirect::guest('login'); // /login url
});

此过滤器(上面给出)将检查用户是否未登录,然后将发生重定向,用户将被发送到 /login url 否则什么都不会发生时,用户将被发送到请求的页面。

此外,默认情况下,下面的filter 是可用的,这个filter 只是检查用户是否已经登录然后他将被重定向到/(主页)默认:

Route::filter('guest', function($route)
{
    if (Auth::check()) return Redirect::to('/'); // you may change it to /admin or so
});

此 (guest) 过滤器与 /login 一起使用,如下所示,因此如果登录用户打算登录,则该用户将被重定向到主页默认情况下:

Route::get('login', array('before' => 'guest', 'uses' => 'UsersController@getLogin'));

现在,在您的 routes.php 文件中,您声明了以下路由:

Route::group(array('before' => 'auth'), function()
{
    Route::controller('admin', 'UsersController');
});

如果一切正常,那么此设置应该可以正常工作。如果注销的用户尝试访问 admin,那么用户将被发送到 login,这些在默认情况下可用并且应该可以工作。

关于php - Laravel 4 Auth 总是重定向到登录页面?/login,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948948/

相关文章:

php - 计算夜类时间记录的时间差

mysql - 如何根据父字段检索数据

php - laravel Eloquent 地创建数据库条目但具有空值

laravel select where 和 where 条件

orm - 请解释 Laravel ORM 中的foreign_key 和 local_key 关系

php - 从 Laravel 中的相关表中获取有限数量的结果

php - 使用 PHP 和 MySQL 上传文件

php登录问题(用户无法登录,用户可以使用别人的密码访问自己的账户)

php - 我需要一个 API。我应该从哪里开始?

php - 我如何使用全文,例如 Like