我刚来Laravel ,

i have code in my controller's __construct like

if(Auth::check())
{
    return View::make('view_page');
}

return Redirect::route('login')->withInput()->with('errmessage', 'Please Login to access restricted area.');

工作正常,但我想要的是.把这些代码放在每个控制器中真的很烦人,所以我想把这个验证身份和重定向到登录页面放在一个地方,可能是router.phpfilters.php.

I have read some posts in forum as well as in stackoverflow, and added code in filters.php like below but that's too not working.

Route::filter('auth', function() {
    if (Auth::guest())
    return Redirect::guest('login');
});

Please help me to resolve this issue.

推荐答案

Laravel 5.4

Use the built in auth middleware.

Route::group(['middleware' => ['auth']], function() {
    // your routes
});

For a single route:

Route::get('profile', function () {
    // Only authenticated users may enter...
})->middleware('auth');

Laravel docs

拉维尔4号(原始答案)

That's already built in to laravel. See the auth filter in filters.php. Just add the before filter to your routes. Preferably use a group and wrap that around your protected routes:

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

    Route::get('/', 'HomeController@index');
});

Or for a single route:

Route::get('/', array('before' => 'auth', 'uses' => 'HomeController@index'));

To change the redirect URL or send messages along, simply edit the filter in filters.php to your liking.

Laravel相关问答推荐

Laravel-如何按第三表关系对数据进行分类

如何在Laravel中从多行中获取合并数组?

使用Laravel判断其他数据库中是否存在记录

如何在Laravel中创建自定义单项集合

Vue 组件中的图像不适用于 Vite + Laravel

将错误消息抛出并显示为关联数组

如何使用动态翻译键翻译 Laravel硬编码字符串(还有 1 个错误)..(验证异常类)

如何更改 laravel sanctum 返回message: Unauthenticated.

Laravel 连接表

Laravel Blade - 产生内部部分

PHP Laravel:如何设置或获取会话数据?

laravel url 验证变音符号

如何从 laravel 控制器执行外部 shell 命令?

升级到 Laravel 5.2 会使所有会话失效

调用未定义的方法 Illuminate\Foundation\Application::bindShared()

如何在 Laravel 查询中使用多个 OR、AND 条件

在 Laravel 4 中使用 HTML 占位符

在 Laravel 中判断会话超时

如何使用队列设置高、低和中优先级Electron邮件?

Laravel 5.3 - 用户Collection 的单一通知(关注者)