gpt4 book ai didi

laravel - 如果用户未登录 Laravel,则重定向到登录

转载 作者:行者123 更新时间:2023-12-02 09:20:16 26 4
gpt4 key购买 nike

我是 Laravel 新手,

我的 Controller 的 __construct 中有代码,例如

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

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

它工作正常,但我想要的是。将这些编码放入每个 Controller 中确实很烦人,所以我希望将此验证身份验证并重定向到登录页面放在一个地方,可能位于 router.phpfilters.php 中.

我已经在论坛和 stackoverflow 中阅读了一些帖子,并在 filters.php 中添加了代码,如下所示,但这也不起作用。

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

请帮我解决这个问题。

最佳答案

Laravel 5.4

使用内置的auth中间件。

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

对于单个路线:

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

Laravel docs

Laravel 4(原始答案)

这已经内置到 Laravel 中了。请参阅 filters.php 中的 auth 过滤器。只需将 before 过滤器添加到您的 route 即可。最好使用一个组并将其包裹在 protected 路由周围:

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

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

或者对于单个路线:

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

要更改重定向 URL 或发送消息,只需根据您的喜好编辑 filters.php 中的过滤器即可。

关于laravel - 如果用户未登录 Laravel,则重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com