Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的会话和中间件工作不正常_Php_Laravel_Laravel 5.8 - Fatal编程技术网

Php 我的会话和中间件工作不正常

Php 我的会话和中间件工作不正常,php,laravel,laravel-5.8,Php,Laravel,Laravel 5.8,实际上,我希望只有在用户登录时,我的应用程序才会转到admin_panel.blade.php。我不想直接去那里。所以我实现了中间件和会话,但它不起作用,因为如果我直接进入“管理面板”,它就不会限制我。无论是否使用登录信息,它都允许我进入管理面板 请解决我的问题 Web.php Route::get('/admin_log', function () { return view('Admin.admin_login'); }); Route::group(['middleware'=&g

实际上,我希望只有在用户登录时,我的应用程序才会转到admin_panel.blade.php。我不想直接去那里。所以我实现了中间件和会话,但它不起作用,因为如果我直接进入“管理面板”,它就不会限制我。无论是否使用登录信息,它都允许我进入管理面板

请解决我的问题

Web.php

Route::get('/admin_log', function () {
    return view('Admin.admin_login');
});
Route::group(['middleware'=>'session_auth'],function(){
    Route::get('/admin_panel','LoginController@admin_panel');
登录控制器

public function admin_panel(){
        return view('Admin.admin_panel');
    }
    public function admin_login(Request $req){
        $login=AdminLogin::first();

        if ($login->Admin_Name==$req->admin_name && $login->Admin_Password==$req->admin_password ){
            $req->session()->put('session_name',$req->admin_name);

            return redirect('admin_panel');

        }

        else{
            return redirect('admin_log')->with('error','Invalid UserName or Password!');
        }


    }
中间件

public function handle($request, Closure $next)
    {
        if(is_null($request->session()->get('session_name'))){
            return redirect('/admin_log');
        }

        return $next($request);
    }

能否显示kernal.php代码
protected$routeMiddleware=['auth'=>\App\Http\Middleware\Authenticate::class',auth.basic'=>\illumb\auth\Middleware\AuthenticateWithBasicAuth::class',bindings'=>\illumb\Routing\Middleware\SubstituteBindings::class',cache.headers'=>\illumb\Http\Middleware\SetCacheHeaders::class',can'=>\illumb\auth\Middleware\Authorize::class,'guest'=>\App\Http\Middleware\RedirectIfAuthenticated::class,'session\U auth'=>\App\Http\Middleware\session\U auth::class,];
我使用的最后一个是session\U auth,您是否尝试将session\U auth文件名和类名更改为'SessionAuth'