Laravel自定义中间件

时间:2020-10-13 10:29:50

标签: laravel middleware laravel-middleware

我正在尝试使用中间件来实现这一目标

web.php

Route::get('/test', 'TestController@index')->middleware('TestLogin');

重定向到/ test,如果找到会话

Route::get('/test1', 'TestController@index1')->middleware('TestLogin');

如果已设置会话,则重定向到test1

中间件-TestLogin

public function handle($request, Closure $next)`
    { 
        if($request->session()->get('Username'))
        {
            return redirect()->route(\);
            // what to write here to redirect to the path its being called from

        }
        
        return redirect()->route('login');
        
}

不想使用默认的身份验证中间件

1 个答案:

答案 0 :(得分:-1)

您的中间件应该检查​​登录(会话),如果找不到,则重定向到登录页面,否则它将通过请求。像这样:

public function handle($request, Closure $next)
{ 
    // No login session, redirect
    if(!$request->session()->get('Username'))
    {
        return redirect()->route('login');
    }

    // Pass the request down the rest of pipeline
    return $next($request);       
        
}

您应该考虑使用内置authentication system in Laravel本身,它将节省大量代码,并且可以确保从安全角度正确处理身份验证。

相关问题