2017-09-14 25 views
2

私はlaravel_sessionを取り除こうとしています。そのarrayfiledatabaseLaravelアプリケーションからlaravel_session cookieを削除するにはどうすればよいですか?

なしに動作しません:

私が使用すること

https://laracasts.com/discuss/channels/laravel/laravel-51-disable-session-and-cookies-for-some-routes

変更用のドライバをミドルウェアを作成しようとしました。毎回、私はリフレッシュ - 私はいつもこのさらにこの

enter image description here


がどのように1がに行くか質問とデバッグを参照してください?


私はこの時点でどのような提案もありません。

これについてのヒント/提案/ヘルプは非常に高く評価されます!

でも可能ですか?

+0

これはブラウザから送信されたクッキーで、新しい設定をテストするときにクリアします(ウェブブラウザのキャッシュ/履歴を消去します)。 – ad4s

答えて

0

私がLaravelにlaravel_sessionを使用させたくない特定のルートがある場合。 これは、任意のルートに適用できます。

Ex。たとえば、あなただけのこれらの2つのルートに適用する場合:

url1または

Route::get('/url1', '[email protected]');

Route::get('/url2', '[email protected]');url2


/アプリ/ HTTP /ミドルウェア/ StartSessionMiddlewareを作成します。PHP

<?php 
namespace App\Http\Middleware; 

use Closure; 
use Config; 

use Illuminate\Session\Middleware\StartSession as BaseStartSession; 

class StartSessionMiddleware extends BaseStartSession 
{ 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) { 

     if($request->is('url1') || $request->is('url2')) { 
      Config::set('session.driver', 'array'); 
     } 

     return parent::handle($request, $next); 
    } 
} 

登録は現在の行を追加することによって、/app/Http/Kernel.php

\App\Http\Middleware\StartSessionMiddleware::class,

とすることを、そのlaravel_sessionは、これらの2つのルートのためにもう存在してはなりません。

私はこれが誰かを助けることを願っています。

3

あなたはアプリ/ HTTP/Kernel.phpに移動し、セッション関連の部品をコメントアウトLaravel 5.1で、全くのセッションを開始したくない場合は、次の

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \App\Http\Middleware\EncryptCookies::class, 
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
    // \Illuminate\Session\Middleware\StartSession::class, 
    // \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    // \App\Http\Middleware\VerifyCsrfToken::class, 
]; 

注それは十分ではないことStartSessionミドルウェアのみを取り除くには、セッションが存在しているためにShareErrorsFromSessionVerifyCsrfTokenを無効にする必要があります。特定のルートでそれを除外するようなロジックが必要な場合は、StartSessionのミドルウェアをオーバーライドできます。私はそれをテストしていないので、私は他の副作用を知らない。

セッションを必要としない場合や、ウェブサイトに関連するすべての機能を必要としない場合は、APIを作成するだけなので、この目的で合理化されたLaravel Lumenをご覧ください。

ところで、セッションドライバは、セッションを格納する場所と方法を定義します。サーバー側。クライアント側からはまだ暗号化されたクッキーです。

+0

私はこれらの3行をコメントアウトするとすぐに「セッションストアは要求に応じて設定されていません。何か提案がありますか? – ihue

+0

@ihueそれはなぜ、私は自分自身を試してみたところで、これまでのところうまくいくようです。あなたはすべてがきれいに整理されていることを確認してください、多分あなたはあなたのWebサーバーを再起動しようとする可能性があります。また、セッションドライバを 'array'に設定して、何らかの機能が必要な場合や、リクエストの後にクリアされるようにするために、少なくともいくつかの機能があることを確認することもできます。そのエラーはどこで発生しますか?セッションに応じて($ errorsのチェックやCSRFトークンのレンダリングなど)、ビューに何もないことを確認してください。 – Quasdunk

関連する問題