Как я могу исправить логическую ошибку, что сессия не работает? - PullRequest
0 голосов
/ 06 марта 2020

Я хочу, чтобы мое приложение go перешло на admin_panel.blade. php только при входе пользователя в систему. Я не хочу go там напрямую. Поэтому я реализовал промежуточное программное обеспечение и сеанс, но он не работает, потому что, если я прямо go обращаюсь к 'admin_panel', то это не ограничивает меня. Без или с использованием регистрационной информации он предоставляет мне go для admin_panel.

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');

LoginController

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!');
        }


    }

Middleware

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' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'session_auth' => \App\Http\Middleware\session_auth::class,
    ];

1 Ответ

0 голосов
/ 07 марта 2020

Пробовали ли вы dd ($ request-> session ()) в функции handle () вашего Middleware, когда вы go to / admin_panel просматриваете его содержимое?

Если вы не перенаправление в / admin_log, это, вероятно, означает, что вы не вводите свое условие и ваше имя сеанса существует.

Надеюсь, что это немного поможет.

С уважением

...