当前位置:  开发笔记 > 编程语言 > 正文

Laravel - 如果用户未经过身份验证,如何重定向到登录

如何解决《Laravel-如果用户未经过身份验证,如何重定向到登录》经验,为你挑选了1个好方法。



1> Moppo..:

控制器不是检查用户是否经过身份验证的正确位置.你应该使用中间件.要获取有关中间件检查的信息,请访问此处

让我们看看如何使用默认的Laravel auth中间件来实现此目的:

首先摆脱你的AdminBaseController只使用AdminController

然后,您必须检查auth文件中是否启用了中间件app\Http\Kernel.php

你应该有这条​​线:

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,

这意味着中间件是活动的并且可用于您的路由.

现在让我们进入中间件类app\Http\Middleware\Authenticate.php来指定中间件的行为:

//this method will be triggered before your controller constructor
public function handle($request, Closure $next)
{
    //check here if the user is authenticated
    if ( ! $this->auth->user() )
    {
        // here you should redirect to login 
    }

    return $next($request);
}

现在唯一要做的就是决定应该应用中间件的路由.假设您有两条路径只能从经过身份验证的用户访问,您应该指定以这种方式使用这两条路由的中间件:

Route::group( ['middleware' => 'auth' ], function()
{
    Route::get('admin/index', 'AdminController@index');
    Route::get('admin/ajuda', 'AdminController@ajuda');
});

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有