2017-10-27 14 views
0

私はlaravelを初めて使っています。ログイン成功後にセッションを設定しました(ログインリンク:http://www.example.com/login)。今私はプロフィールページにいます。 - >http://www.example.com/customer/account/profile。 プロファイルページでセッションを印刷すると、ユーザー(顧客)のセッション値が取得されます。しかし、私が直接ログインページ(http://www.example.com/login)にURLを変更すると、セッションが破棄されずにログインページにセッション値が表示され、ログインページに空の配列が表示されます。カスタマー・ミドルウェアでlaravelでセッションが破棄されないと、ログインページでセッションを取得できないのはなぜですか?

Route::get('/login','[email protected]'); 
Route::post('/login/chklogin','[email protected]'); 
Route::group(['prefix' => 'customer', 'middleware' => 'customer' ], function() 
{ 
    Route::get('customer/dashboard','customer\[email protected]'); 
    Route::get('customer/account/profile','customer\account\[email protected]dex'); 
    Route::post('/account/profile/update','customer\account\[email protected]'); 

}); 

:ルート/ web.phpファイルで

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

} 

私は、ミドルウェアまたは任意のコントローラのコンストラクタでこのような何かを得る載せていきたいと思います。

public function handle($request, Closure $next) 
{ 
    // if session not set for customer then redirect to login page 

    // if session set for customer then redirect to profile page 
} 

私はページ(http://www.example.com/loginを)ログインするためのURLを変更するが、私のセッションが破棄されていない場合、それはプロフィールページ(http://www.example.com/customer/account/profile)にリダイレクトする必要がありますが、機能を設定することがwnat。それは動作していません。あなたの助けに感謝します。

ありがとうございます!

+0

バージョンによって処理され、ミドルウェアのようなものを必要はありませんか? ルートファイル内のグループにルートがラップされていますか? –

+0

@JuanCortés:バージョンは5.3.31です。はい、経路は問題のようにグループにまとめられています – disha

答えて

0

おそらくLoginControllerindexメソッドがセッションを破棄している可能性があります。私のために破損したデータを防ぐことは理にかなっています。

とにかく、あなたはそれがすべてがauthミドルウェアlaravelの

Route::group(['prefix' => 'customer', 'middleware' => 'auth' ], function() { 

    // protected routes here 

}); 
関連する問題